# VMC iOS (SwiftUI + MobileVLCKit) Native iPhone/iPad app voor Vonas Media Cluster. ## Op de Mac ```bash cd ~/Code/mediacluster/apps/ios open VMC.xcodeproj ``` Eerste keer (of na schone sync) VLCKit zetten: ```bash bash scripts/fetch-vlckit.sh # download ~250MB (eenmalig) bash scripts/link-vlckit.sh # kopieert naar Vendor/ + linkt in Xcode ``` In Xcode: 1. **Signing & Capabilities** → jouw Team 2. iPhone selecteren → ▶ Run --- ## Apple TV (tvOS) Apart project (zelfde API, TV-UI met focus/remote): ```bash cd ~/Code/mediacluster/apps/ios bash scripts/fetch-tvvlckit.sh bash scripts/link-tvvlckit.sh open VMCTV.xcodeproj ``` - Bundle ID: `nl.vonas.mediacluster.tvos` - Team: `X25NYX3K49` - Playback: **TVVLCKit** (zelfde VLC-engine als iPhone) — MKV werkt - Details: `VMCTV/README.md` ## Let op `Vendor/MobileVLCKit.xcframework` en `Vendor/TVVLCKit.xcframework` staan niet in git (te groot). Altijd op de Mac via de scripts installeren. ## Live TV / Events / ClearKey (0.5.2+) - `streamId` is een **String** (`"123"` of `"custom:uuid"`); path-segmenten worden URL-geëncodeerd (inclusief `:`). - Play-response parseert `format`, `drm` (ClearKey kids/keys) en `watchSessionId` voor live-lijsten én events. - Heartbeat: `POST /api/v1/client/watching/heartbeat` ~elke 25s bij custom live + events. - **ClearKey/DASH:** lokale in-app proxy (`ClearKeyDashProxy`) haalt MPD/segmenten op (dynamic live: BaseURL/Location/query/Range), decrypt CENC/CBCS (`sinf`→`free`), en speelt plain DASH via MobileVLCKit. Xtream HLS/TS speelt direct zonder proxy. - Events-tab verschijnt als `/me` → `events.enabled` true is.