I'm trying to implement a MediaDeviceExtension, but it is not being launched. I followed the documentation, but I see "missing required entitlement" in log, even though I've added the entitlement.
My Setup
- com.apple.developer.media-device-extension on both the app and the extension:
<key>com.apple.developer.media-device-extension</key>
<array>
<string>media-device-protocol.myradio</string>
</array>
- The same id is in the extension’s UTExportedTypeDeclarations → UTTypeIdentifier (conforming to public.media-sharing-protocol) and in the Swift protocolType property.
- The app’s Info.plist has MDESupportedProtocols with the same id.
- EXExtensionPointIdentifier = com.apple.media-device-extension in EXAppExtensionAttributes.
- The capability is enabled on both App IDs in Certificates, Identifiers & Profiles.
Problem
Opening an AVRoutePickerView does not call startDeviceDiscovery(), and no device appears in the picker. Device log:
-FigCustomEndpointManager- manager_shouldAllowDiscoveryForProtocol:
Protocol media-device-protocol.myradio has never been activated - allowing discovery for first-time use
-FigCustomEndpointManager- manager_SetDiscoveryMode:
Failed to launch system casting instance for protocol media-device-protocol.myradio
-MXAppExtensionMonitor- -[MXAppExtensionInstance launchExtensionRequiring:]:
Extension with identifier: <_EXExtensionIdentity: 0x…> is missing required entitlement, dropping!
-MXSystemMediaCasting- -[MXSystemCastingExtensionInstance launch]:
Failed to launch <SystemMediaCastingExtension<MyRadio:media-device-protocol.myradio>: …,
<EXExtensionProcess: (null) PID: 0>, 0>
Question
What entitlement is MXAppExtensionMonitor checking for when launching a SystemMediaCastingExtension? It is not named in the log. If an entitlement beyond com.apple.developer.media-device-extension is required, how is it obtained?
FB23043277