FairPlay on iOS 16.1 and onward: AVAssetResourceLoaderDelegate not called with offline DRMs anymore

Hello,

We are experiencing a new regression with iOS 16.1/16.2 beta when trying to play a video with offline FairPlay DRMs.

Everything was working fine with 16.0.3 and below. The delegate public func resourceLoader(_ resourceLoader: AVAssetResourceLoader, shouldWaitForLoadingOfRequestedResource loadingRequest: AVAssetResourceLoadingRequest) -> Bool is never called when you start playing an offline video. It prevents the player to get the DRM and we end up with a timeout CoreMediaError -19512.

We tried to preload the existing keys asset.resourceLoader.preloadsEligibleContentKeys = true to no avail.

We also looked at the solutions provided in this thread iOS 16 FairPlay Changes which was very similar to our issue but nothing worked for us (we are already using keyRequest.processContentKeyResponse(response)).

The DRMs are valid and can be loaded if we move the key to an older iOS device (iOS 16 and below). However, we can see in the logs the following error happening before the CoreMediaError -19512.

<<< FigPKDKeyManager >>>> PKDKeyManagerSetKeyRequestError: keyManager: 0x606ce 210 KeyID: F017D7B0-390-45ED-803-01A748DFB7A1 errOr: Error Domain-CoreMediaErrorDomain Code=-19160 " (null)" err: 0

The player just seem not to trigger any delegate starting 16.1+.

Is anybody else experiencing the same issue? How can we find out why the delegate aren't triggered?

Bests

We have customer complaints coming in now. Users on iPhone 16.1 Ordinary small business website using FairPlay.

Hi There - We are experiencing this issue as well, haven't found a solution either. Did this get resolved for you?

Thanks!

FairPlay on iOS 16.1 and onward: AVAssetResourceLoaderDelegate not called with offline DRMs anymore
 
 
Q