To learn how to develop/distribute a DriverKit driver (DEXT) and a UserClient app correctly, I am trying to run the following sample dext and app.
I walked throught steps in README.md included in the project and faced issues.
First, I referred the "Configure the Sample Code Project" section in the README.md and configured the sample code project to build with automatic signing. I could run the app and activate the dext successfully and made sure the app could communicate with the dext.
Next, I tried the manual signing. I followed steps described in the "Configure the Sample Code Project" section carefully.
The following entitlements has already been assigned to my team account.
- DriverKit Allow Any UserClient Access
- DriverKit USB Transport - VendorID
- DriverKit
I could build both app and dext and could run the app. However, when I clicked the "Install Dext" button to activate the dext, I got the following error:
sysex didFailWithError: extension category returned error
Am I missing something?
I would also like to know detailed steps to publicly distribute my dext and app using our Developer ID Application Certificate, as README.md only shows how to configure the project for development.
- Xcode version: 16.3 (16E140)
- Development OS: macOS 15.5 (24F74)
- Target OS: macOS 15.5 (24F74)
With regard to this issue, I confirmed that this error occurs when the bundle ID length is longer than 64 characters. Are there any such limitation?
Yes. More specifically, because of how DEXTs are integrated into the kernel, they end up inheriting limitation/restrictions that the kernel implements but the larger system does not. As another example, many Xcode project use CFBundleVersion for an incrementing build number but the kernel actually enforces it's own fairly rigid format which the kextload system then enforces on DEXTs.
__
Kevin Elliott
DTS Engineer, CoreOS/Hardware