Local DriverKit development blocked by provisioning profile requirement

Hi, I am working on a personal HIDDriverKit project. The documentation suggests that you do not need the entitlements from Apple to do local development - that all you need to do is turn of SIP, enable developer mode, and turn signing to "Sign to Run Locally".

However, I have followed all of these steps, and am still running into the error that to build, I need to have a provisioning profile with the DriverKit (development) feature (MacOS 15.2 Xcode 16.2).

Am I missing something here regarding the steps for local development? Does one need to request a development version of the entitlements even for local development? Do I need a paid developer account to do this?

Thank-you in advance.

The documentation suggests that you do not need the entitlements from Apple to do local development - that all you need to do is turn of SIP, enable developer mode, and turn signing to "Sign to Run Locally".

These directions are out of date and should generally be ignored.

Am I missing something here regarding the steps for local development?

Yes. The development entitlements are actually a major improvement that were introduced after the existing documentation was written and which DRAMATICALLY simplify DriverKit development.

What they are is a variant of the standard DriverKit entitlements which:

  • Match against ANY hardware configuration, making it unnecessary to apply for device specific entitlements.

  • Are ONLY available in Development signed builds, limiting them to just the devices directly registered with your developer account.

In practical terms, they make it very easy to sign a DEXT (at least in development), with the basic process being the same as any other standard capability.

Does one need to request a development version of the entitlements even for local development?

No, there isn't any approval process for the development entitlement variants.

Do I need a paid developer account to do this?

I'm not sure about that. However, you can check by viewing the capabilities of any app ID you've registered. In the list of capabilities, you'll see the list of DriverKit entitlements, each with "(Development)" at the end of their names.

__
Kevin Elliott
DTS Engineer, CoreOS/Hardware

Hi Kevin,

Thank-you for the response, and the clarification regarding the DriverKit entitlements. FWIW, one does in fact need a paid Developer Account to access them.

I had one quick follow up regarding the UserClient implementation. I haven't gotten it to work yet (Failed opening connection to dext with error: 0xe00002c2), although it is thus far essentially an implementation of the example app. There could be many things wrong, but perhaps you could advise if the entitlement com.apple.developer.driverkit.userclient-access is absolutely a requirement here to develop a Dext that implements a UserClient connection? (the example app itself doesn't want to build because I don't have it)

If it is, then is there a different process between requesting a development vs. distribution version of this entitlement?

If not, is there some trick to get the communication to work?

Thank-you in advance!

Same Problem here... Every sample code which needs the DriverKit (Development) capability seems not to be able to compile. Seems a paid Developer Account is needed to get the developer provisioning profile... Hey, I just want to learn and try the features out... Do I really need to pay 100 bucks for that? It would be nice if someone has a hint how to get this managed. Thanks for any hints!

Local DriverKit development blocked by provisioning profile requirement
 
 
Q