Hi, I have been following the steps presented in https://developer.apple.com/documentation/coremediaio/creating_a_camera_extension_with_core_media_i_o to create a core media I/O camera.
However when calling
let activationRequest = OSSystemExtensionRequest.activationRequest(
forExtensionWithIdentifier: identifier, queue: .main
)
activationRequest.delegate = installDelegate
OSSystemExtensionManager.shared.submitRequest(activationRequest)
The delegate's request(_ request: OSSystemExtensionRequest, didFailWithError error: Error)
method is being called with error code 9 (OSSystemExtensionError.Code.validationFailed
) and the system dialog does not appear.
In general, for system extensions, the Mach service name should be a ‘descendent’ of a app group that you have access to. So, if you have an app group com.example.my-product
the following Mach service names are fine:
-
com.example.my-product.my-cmio
(direct child) -
com.example.my-product.my-cmio.mach
(indirect child)
but the following are not:
-
my-cmio
-
com.example.my-cmio.mach
-
com.example.my-product-my-cmio
That last one is interesting because it speaks to the definition of “prefix”. That’s a convenient way to talk about this but it’s not precise. If your app group is GGG
, the string prefix we look for is GGG.
, including the trailing dot. That’s why I always say “child” or “descendent”, to capture the concept of hierarchy.
Having said that, I’m not ‘on stage’ at WWDC trying to explain this succinctly (-:
Share and Enjoy
—
Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"