code-signingentitlementsipadosdriverkit

DriverKit driver does not appear in iPadOS app settings


The driver does not show up in the app settings after switching to “DriverKit USB Transport - VendorID”. Previously, the app used “DriverKit USB Transport (development)” and everything worked as expected. The entitlements looked like this:

<?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.driverkit</key>
    <true/>
    <key>com.apple.developer.driverkit.transport.usb</key>
    <array>
        <dict>
            <key>idVendor</key>
            <string>*</string>
        </dict>
    </array>
</dict>
</plist>

I received approval to use “DriverKit USB Transport - VendorID”. I updated the App ID configuration in the portal, removed all development entitlements, updated the provisioning profile, and edited the driver’s .entitlements as follows:

<?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.driverkit</key>
    <true/>
    <key>com.apple.developer.driverkit.transport.usb</key>
    <array>
        <dict>
            <key>idVendor</key>
            <integer>1111</integer>
        </dict>
    </array>
</dict>
</plist>

Entitlements looks like The app installs on an iPad with an M processor, but the driver does not appear in the settings. In the logs I see the following:

272 debug   19:50:42.005193+0300    installd    7935 signing bytes in 5 blob(s) from /var/installd/Library/Caches/com.apple.mobile.installd.staging/temp.bugkAE/extracted/Payload/****.app/SystemExtensions/****Driver.dext/****.Driver(arm64)
272 debug   19:50:42.012068+0300    installd    open(/var/installd/Library/Caches/com.apple.mobile.installd.staging/temp.bugkAE/extracted/Payload/****.app/SystemExtensions/net.svedm.****.SDRDriver.dext/Info.plist,0x0,0x1b6) = 4
272 debug   19:50:42.012712+0300    installd    0xc2e14c618 done serializing <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "https://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"><dict><key>application-identifier</key><string>****.Driver</string><key>com.apple.application-identifier</key><string>****</string><key>com.apple.developer.driverkit</key><true/><key>com.apple.developer.driverkit.transport.usb</key><array><dict><key>idVendor</key><integer>3034</integer></dict></array><key>com.apple.developer.team-identifier</key><string>****</string><key>com.apple.security.get-task-allow</key><true/><key>get-task-allow</key><true/></dict></plist>
 
0   error   19:53:08.930054+0300    kernel  Sandbox: MyApp(844) deny(1) sysctl-read kern.bootargs
0   error   19:53:08.931571+0300    kernel  Sandbox: driverkitd(77) deny(1) syscall-unix 284
syscall-unix-denied-SIGKILL
0   error   19:53:09.985946+0300    kernel  1 duplicate report for Sandbox: driverkitd(77) deny(1) syscall-unix 284
syscall-unix-denied-SIGKILL
0   error   19:53:09.985985+0300    kernel  Sandbox: MyApp(844) deny(2) file-test-existence /usr/bin/swift-backtrace
0   error   19:53:09.986011+0300    kernel  Sandbox: MyApp(844) deny(2) file-test-existence /usr/bin/arm64e

But I don’t quite understand what is going wrong. Any ideas?


Solution

  • The issue was with the iPadOS version. Updating to the latest one fixed it.