stremio/apps/ios/README.md
Jos Vooges | STH fb8601c2b5 Harden repo for store review: ignore secrets and soften admin copy.
Keep credentials, HARs and probe dumps out of git; use neutral wording around sessions and stream licenses.
2026-09-22 22:17:25 +02:00

59 lines
2 KiB
Markdown

# VMC iOS (SwiftUI + VLCKit 4)
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 4** zetten (PiP):
```bash
bash scripts/fetch-vlckit.sh # download ~500MB VLCKit 4.0.0a19
bash scripts/link-vlckit.sh # → Vendor/VLCKit.xcframework
```
> **Let op:** MobileVLCKit 3.x heeft **geen** Apple Picture in Picture. VMC iOS 0.5.3+ vereist VLCKit 4.
In Xcode:
1. **Signing & Capabilities** → Team + Background Modes → *Audio, AirPlay, and Picture in Picture*
2. iPhone selecteren → ▶ Run
## Picture in Picture
- Systeem-PiP via VLCKit (`VLCPictureInPictureDrawable`)
- PiP-knop in de speler + automatisch bij app naar achtergrond tijdens afspelen
- Encrypted DASH via lokale stream-proxy → VLC
---
## 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** (VLC 3.x engine) — PiP is iPhone/iPad-only
- Details: `VMCTV/README.md`
## Let op
`Vendor/VLCKit.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 VLCKit. Xtream HLS/TS speelt direct zonder proxy.
- Events-tab verschijnt als `/me` → `events.enabled` true is.