Is there a difference between development installation DriverKit and distribution installation DriverKit?

On the same computer, using Xcode to run the APP to install DriverKit, my USB device can work, and I can see the output os_log.

But using Xcode archive Export Notarized App, installing DriverKit, the USB device does not work, and the system os_log cannot be seen.

Is there any difference between these two installations?

Run the systemextensionsctl command-line tool with the list option from Terminal, the two are the same DriverKit [activated enabled].

  • Do both provisioning profiles contain the correct entitlements for your driver?

  • I added a new answer, please refer to it.

Add a Comment

Replies

Is my driver.dext entitlement missing com.apple.developer.driverkit.allow-any-userclient-access?

entitlement file of driver.dext

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	
	<key>com.apple.developer.system-extension.install</key>
	<true/>
	<key>com.apple.developer.driverkit.family.hid.eventservice</key>
	<true/>
	<key>com.apple.developer.driverkit.family.hid.device</key>
	<true/>
	<key>com.apple.developer.driverkit.transport.hid</key>
	<true/>
	<key>com.apple.developer.driverkit</key>
	<true/>
	<key>com.apple.developer.driverkit.transport.usb</key>
	<array>
		<dict>
			<key>idVendor</key>
			<integer>1234</integer>
		</dict>
	</array>
</dict>
</plist>

entitlement file of Driver.app

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>com.apple.developer.system-extension.install</key>
	<true/>
	<key>com.apple.security.app-sandbox</key>
	<true/>
	<key>com.apple.security.files.user-selected.read-only</key>
	<true/>
</dict>
</plist>

  • You need to include the contents of your development and distribution provisioning profiles. Not the entitlements files.

  • I made it according to these two links. Is there anything missing? Use a Valid Developer ID Certificate. Preparing Your App for Distribution Notarizing macOS Software Before Distribution

  • It is possible that the provisioning profiles that Xcode has made aren't correct. Please check what entitlements the provisioning profiles contain and post them. The best way to see if there are differences between the development and distribution profiles are to check them.