I'm trying to built a USBDriverKit driver on the Mac. The driver loads properly but when my device is inserted the driver is ignored and instead the com.apple.AppleUserHIDDrivers driver is loaded. I do not understand what is causing this. The device both have USB and HID cababilities but I want it to work with USBDriverKit so that the driver can be used on the Ipad as well.
How can I get the driver to match properly?
Entitlements:
<?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>1240</integer>
</dict>
</array>
<key>com.apple.developer.driverkit.userclient-access</key>
<true/>
<key>com.apple.security.app-sandbox</key>
<true/>
</dict>
</plist>
Info.plist:
...
<dict>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>IOKitPersonalities</key>
<dict>
<key>ClickerDriver</key>
<dict>
<key>IOKitDebug</key>
<string>65535</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>IOClass</key>
<string>IOUserService</string>
<key>IOProviderClass</key>
<string>IOUSBHostInterface</string>
<key>IOUserClass</key>
<string>ClickerDriver</string>
<key>IOUserServerName</key>
<string>example.Clicker.driver</string>
<key>bInterfaceClass</key>
<string>3</string>
<key>bInterfaceSubClass</key>
<string>0</string>
<key>bConfigurationValue</key>
<string>1</string>
<key>bInterfaceNumber</key>
<string>0</string>
<key>idProduct</key>
<integer>63</integer>
<key>idVendor</key>
<integer>1240</integer>
<key>UserClientProperties</key>
<dict>
<key>IOClass</key>
<string>IOUserUserClient</string>
<key>IOUserClass</key>
<string>ClickerDriverUserClient</string>
</dict>
</dict>
</dict>
<key>OSBundleUsageDescription</key>
<string>The app interprets monitors key presses. </string>
</dict>
</plist>
Output of ioreg -b -n "Simple HID Device Demo" -r -l is attacheded.
ioreg.log