Thanks for being a part of WWDC25!

How did we do? We’d love to know your thoughts on this year’s conference. Take the survey here

Xcode archive DriverKit application

I am trying to build a release for an application that installs a DriverKit driver. I created a Developer ID Application Profile with a valid certificate but I'm coming across this error in Xcode 16.3 that is preventing me from archiving:

Xcode 14 and later requires a DriverKit development profile enabled for iOS and macOS. Visit the developer website to create or download a DriverKit profile.

I thought I needed a Dev ID Application profile to distribute the application and that a Development profile is for testing. Is there something I'm missing?

Answered by DTS Engineer in 836689022

I thought I needed a Dev ID Application profile to distribute the application and that a Development profile is for testing. Is there something I'm missing?

So, a few notes here first:

  1. Due to issues in Xcode, DEXT signing is very error prone and tricky to get right. More on that below, but expect that things will got wrong and that it may take multiple tries to get right.

  2. Xcode's errors around code signing can be very misleading. The underlying issue that what a Xcode is basically doing is comparing two data sets (for example, an apps entitlement list and it's provisioning profile) and producing an error when they don't match. However, the misleading part is that it then describes that error by assuming one is entity is "correct" and the other is wrong, when in fact the actual solution may be very quite different.

So, in terms of how you sign a DEXT in Xcode 16, this forum thread has a good overview. You may also want to check out this post and the thread that follow. It isn't specifically about the exact signing process, but instead describes how the data in the portal reaches Xcode and then how the data end up in your executable.

__
Kevin Elliott
DTS Engineer, CoreOS/Hardware

I thought I needed a Dev ID Application profile to distribute the application and that a Development profile is for testing. Is there something I'm missing?

So, a few notes here first:

  1. Due to issues in Xcode, DEXT signing is very error prone and tricky to get right. More on that below, but expect that things will got wrong and that it may take multiple tries to get right.

  2. Xcode's errors around code signing can be very misleading. The underlying issue that what a Xcode is basically doing is comparing two data sets (for example, an apps entitlement list and it's provisioning profile) and producing an error when they don't match. However, the misleading part is that it then describes that error by assuming one is entity is "correct" and the other is wrong, when in fact the actual solution may be very quite different.

So, in terms of how you sign a DEXT in Xcode 16, this forum thread has a good overview. You may also want to check out this post and the thread that follow. It isn't specifically about the exact signing process, but instead describes how the data in the portal reaches Xcode and then how the data end up in your executable.

__
Kevin Elliott
DTS Engineer, CoreOS/Hardware

Xcode archive DriverKit application
 
 
Q