ios: add share extension to queue and play video links

Embed an iOS and Catalyst share extension using existing discovery and player APIs. Share saved players through an App Group snapshot, preserve the queue, and verify advancing playback before reporting success.

Cover URL provider transport, settings migration, discovery addresses, duplicate handling, cancellation, and partial enqueue/play outcomes with focused tests. Document authentication and signing limits.
This commit is contained in:
2026-10-20 22:08:12 -07:00
parent ec99065cdf
commit 8723955705
26 changed files with 2104 additions and 241 deletions
+8 -1
View File
@@ -4,6 +4,12 @@ QueueCube is a web frontend for [mpv](https://github.com/mpv-player/mpv).
It allows you to remotely manage mpv's playqueue as well as the ability to search YouTube via a locally running [Invidious](https://github.com/iv-org/invidious) instance.
## Sharing video links
The iOS and Mac Catalyst app includes a QueueCube share extension. Share one
video link, choose a player, and tap **Queue & Play** to append and play it while
keeping the existing queue. See [share extension setup, API behavior, and validation](ios/SHARE_EXTENSION.md).
## iOS TestFlight releases
Gitea Actions builds and uploads the iOS app when a version tag is pushed. The
@@ -21,7 +27,8 @@ Configure these Gitea Actions secrets before the first run:
For local Fastlane use, copy `.env.example` to `.env` and fill in the same
values. Run `bundle exec fastlane ios setup_signing` only when the match signing
assets need to be created or updated. `bundle exec fastlane ios build` creates
assets need to be created or updated. The app and share extension require separate
profiles with the shared App Group enabled; see the share extension guide. `bundle exec fastlane ios build` creates
a signed IPA without uploading it, while `bundle exec fastlane ios beta`
performs the release.