I’m creating my first DriverKit extension and I ran into an entitlement issue when trying to load my driver.
Error 0x0 8397 7 taskgated-helper: (ConfigurationProfiles) [com.apple.ManagedClient:ProvisioningProfiles] App.Dext: Unsatisfied entitlements: com.apple.developer.driverkit.transport.usb
I have already registered the entitlement com.apple.developer.driverkit.transport.usb with my vendor ID in the Apple Developer portal.
However, when I download the provisioning profile, it doesn’t include the idVendor value.
Screenshot from the developer portal (provisioning profile without idVendor) ?
<key>com.apple.developer.driverkit.transport.usb</key>
<array>
<dict>
<key>idVendor</key>
<integer>1356</integer> <!-- Sony -->
<!-- Có thể bổ sung:
<key>idProduct</key>
<integer>XXXXX</integer>
-->
</dict>
</array>
I have already registered the entitlement com.apple.developer.driverkit.transport.usb with my vendor ID in the Apple Developer portal. However, when I download the provisioning profile, it doesn’t include the idVendor value.
The "*" is the development-only entitlement variant and will allow your DEXT's code signature to match against any hardware (note that your IOKit personality dictionary still controls what you actually match/run against).
For development purposes, I generally recommend using that entitlement (just change the value in your Entitlement plist) as it's the easiest configuration to work with and manage.
In terms of debugging specific signing issues, this post has a detailed explanation of how the configuration works followed by a practical example of how to validate the configuration.
__
Kevin Elliott
DTS Engineer, CoreOS/Hardware