iOS SDK (preview)
Private preview
The Havik iOS SDK (Swift package HavikPlayer) is built and playing FairPlay-protected live streams on device today. Distribution is currently a private preview: there is no public package URL and no App Store listing yet. Ask us for access.
The iOS SDK is a native port of the JavaScript SDK. It has the same streams, the same play sequence, and the same event and error vocabulary. AVPlayer plays LL-HLS natively, so there is one engine and no browser matrix.
What you get
| Capability | iOS |
|---|---|
| Playback | LL-HLS over AVPlayer (native, no third-party engine) |
| DRM | FairPlay via AVContentKeySession — certificate, key requests, and license refresh handled for you |
| Auth | Attested sessions (Apple App Attest) — no long-lived key in requests |
| Integration modes | Managed player (HavikPlayer + HavikPlayerView) and bring-your-own-player |
| Events & errors | The same state machine and typed error taxonomy as the web SDK |
| Live pickup | Arm on an upcoming match; attaches when the stream goes live |
There is no iframe embed mode on iOS; apps use the managed player or BYOP. The full surface is documented in the iOS API reference.
Requirements
- iOS 15 or later.
- A physical device for DRM work, because FairPlay does not run in the Simulator.
- The same onboarding as the web SDK: a publishable api-key provisioned for your app. See getting started.
Parity with the web SDK
Web (@oddin-gg/havik-player) | iOS (HavikPlayer) | |
|---|---|---|
| Managed player | ✅ | ✅ |
| Bring your own player | ✅ | ✅ |
| Iframe embed | ✅ | — (not applicable) |
| DRM | Widevine + FairPlay | FairPlay |
| Typed events / stats | ✅ | ✅ |
| QoE analytics beacons | ✅ | on the roadmap |
Demo app
A SwiftUI demo app ships with the SDK and is headed for TestFlight and the App Store:
Want early access? havik-support@oddin.gg
Get access
Email havik-support@oddin.gg with your bundle id and the domains/apps already on your key. Building for Android too? See the Android SDK.