Shipping a libmpv-based video player on the Mac App Store

Most well-known mpv-based Mac players, including IINA, distribute outside the Mac App Store. When I built Reel, a local-video player/library app for macOS, I wanted to know why, and whether it could be done. It can. It took a month from first commit to approval, and almost none of the hard parts were about playing video.

This is a field report of every wall I hit: a JIT crash that only happens under the App Store's rules, LGPL compliance with static linking, two sandbox traps that pass locally and fail later, and one design rejection. If you're putting any FFmpeg/libmpv-family library into a sandboxed Mac app, this should save you a week or two.

Setup: Swift / SwiftUI app. Playback is AVFoundation plus libmpv (via MPVKit, statically linked, LGPL build) for containers where AVFoundation isn't enough, such as mkv, webm, and avi. Distribution: Mac App Store, sandboxed, with StoreKit 2 for a tip jar.

Wall 1: LuaJIT inside libmpv gets your process killed — only on the App Store build