This release revisits custom asset loading implementation.
Improvements
- Enabled content key sessions for FairPlay (working as expected in recent iOS releases).
- Added support for custom HTTP headers when requesting a URN-based player item.
- Added support for Commanders Act platform and vector identifiers (NUDP).
- Added
media_google_castto Commanders Act event metadata (alwaysfalse). - Added player language to metrics sent to Pillarbox monitoring.
- Revisited Commanders Act label priority so that more specific (or specification-related) labels have higher precedence over global labels.
- Made
PlayerItemidentifiable for more ergonomic integration withList, most notably when displaying a playlist. - Improved Info panel
Tabautomatic localization key extraction. - Made Circumspect expectation publishers work with failable publishers.
- Added
Publisher.fail(onOutputFrom:with:)operator to trigger publisher failure in response to another publisher emitting a value.
Fixes
- Fixed tvOS chapter Info panel tab memory leak on tvOS 26 (custom implementation mimicking the system user interface).
- Fixed tvOS Info view action flickering.
- Fixed Control Center integration on macOS (available since macOS 15).
- Fixed sometimes erratic progress tracking for DVR streams.
Breaking Changes
- Revisited
AssetLoaderprotocol to better describe the various steps required for asset and metadata retrieval. Custom implementations should be updated to match the new separation between metadata, asset and player metadata and the associated method signature changes. - Added
platformIdentifierto the analytics configuration. Follow the associated documentation link to obtain the value associated to your product. - Removed
PlaybackContext. - Removed metadata associated with
Asset. - Updated
PlayerItemURN-based initializer to support optionalCommandersActSourceinstead of aPlaybackContext. - Changed
EpisodeInformationfrom enum to struct. - Made
PlayerMetadataand associated types codable for easy persistence.
Demo Improvements
- Added scrubbing speeds. Moving the finger vertically when dragging the slider provides access to half-speed, quarter-speed and fine scrubbings, as with the standard iOS player user interface.
- Added Play+ servers to the list of supported servers. These servers are only used when loading the player, content lists are still delivered by the Integration Layer.
- Removed content key session opt-in.
Demo Fixes
- Fixed erratic list animations when navigating SRG SSR content.
What's Changed
- Add audiovisual background playback policy to the list of known issues by @defagos in #1478
- Use commit hash for GitHub actions by @waliid in #1479
- Add negative metrics known issue by @defagos in #1481
- Bump fastlane from 2.232.2 to 2.233.0 in the gems group by @dependabot[bot] in #1484
- Add
media_google_castto media events by @defagos in #1483 - Fix list animations by @defagos in #1486
- Compare identifiers to determine equality by @defagos in #1488
- Bump fastlane from 2.233.0 to 2.233.1 in the gems group across 1 directory by @dependabot[bot] in #1489
- Add language informtion in metrics by @defagos in #1494
- Bump fastlane from 2.233.1 to 2.234.0 in the gems group by @dependabot[bot] in #1491
- Bump mikepenz/action-junit-report from 6.4.0 to 6.4.1 in the actions group by @dependabot[bot] in #1493
- Fix MP3 audio duration when running as iPad app on macOS by @defagos in #1495
- Support offline metadata persistence by @defagos in #1498
- Fix macOS Design for iPad crash on older than iOS 18 by @waliid in #1506
- Bump jwt from 2.10.2 to 2.10.3 by @dependabot[bot] in #1504
- Bump actions/checkout from 6.0.2 to 6.0.3 in the actions group across 1 directory by @dependabot[bot] in #1505
- Bump fastlane from 2.234.0 to 2.235.0 in the gems group across 1 directory by @dependabot[bot] in #1497
- Update Commanders Act to version 5.5.0 available from the official SPM repository by @defagos in #1509
- Bump fastlane from 2.235.0 to 2.236.0 in the gems group by @dependabot[bot] in #1508
- Bump actions/checkout from 6.0.3 to 7.0.0 in the actions group by @dependabot[bot] in #1510
- Bump fastlane from 2.236.0 to 2.236.1 in the gems group by @dependabot[bot] in #1511
- Add offline support for Core Business URN-based content by @defagos in #1512
- Bump mikepenz/action-junit-report from 6.4.1 to 6.4.2 in the actions group across 1 directory by @dependabot[bot] in #1514
- Restore content key session support in Core Business by @defagos in #1522
- Add offline image persistence for downloads by @waliid in #1526
- Remove unused code by @waliid in #1527
- Add creation date to downloads by @waliid in #1528
- Update comScore to version 6.17.0 by @defagos in #1530
- Bump faraday from 1.10.5 to 1.10.6 by @dependabot[bot] in #1531
- Enable offline comScore tracking by @defagos in #1532
- Fix issues when replaying from a failed state by @defagos in #1534
- Add support for Play+ endpoints by @defagos in #1525
- Avoid chapter artwork leak on tvOS 26 by @defagos in #1538
- Bump fastlane from 2.236.1 to 2.237.0 in the gems group by @dependabot[bot] in #1540
- Enable prefer_self_in_static_references SwiftLint rule by @defagos in #1539
- Improve download internal architecture by @waliid in #1542
- Provide player capabilities when fetching a URN by @defagos in #1537
- Fix MIME type ordering by @defagos in #1543
- Remove capabilities sent when fetching a URN by @defagos in #1545
- Fix dangling files when restarting downloads by @defagos in #1544
- Preserve metadata when restarting a download by @waliid in #1535
- Remove superfluous view nesting by @defagos in #1546
- Add download button for manually entered content by @defagos in #1547
- Improve download cell UI by @waliid in #1548
- Simplify download manager constraint type by @waliid in #1549
- Remove useless download manager by @waliid in #1551
- Improve URN download subtitle by @defagos in #1550
- Bump actions/checkout from 7.0.0 to 7.0.1 in the actions group by @dependabot[bot] in #1552
- Fix SwiftUI list with reference objects by @waliid in #1553
- Support scrubbing speed adjustments by @defagos in #1554
- Bump actions/stale from 10 to 11 in the actions group by @dependabot[bot] in #1555
- Avoid undesired tvOS refreshes by @waliid in #1556
- Document custom Info view tab recommendations by @defagos in #1558
- Revisit label priorities / Add Commanders Act platform and vector identifiers by @defagos in #1559
- Update analytics setup documentation by @defagos in #1560
Full Changelog: 18.0.1...19.0.0