我不知道如何设置 "com.apple.developerkit.driverkit.transport.usb "的权利。com.apple.developer.driverkit.transport.usb
在我的dext entitlements文件中的key。Info.plist文件已经包含了 IOKitPersonalities
词典,并阅读关于 com.apple.developer.driverkit.transport.usb
字典,它看起来应该包含与该词条相同的信息。IOKitPersonalities
.
该 权属档案 中所展示的非常相似的项目。WWDC视频关于驱动程序套件 设置为。
<key>com.apple.developer.driverkit.transport.usb</key>
<true/>
当我把它设置为 <true/>
,系统扩展启动。我确实在看到应用程序的日志行之前看到了一些这样的行。
...
2020-05-06 12:23:19.229709+0200 0x51ac2 Default 0x0 0 0 kernel: DK: IOUserServer(sc.example.MyUserUSBInterfaceDriver-0x100002aad)::exit(CDHash check failed)
这个权利是否应该只反映出这个程序中的内容 IOKitPersonalities
词典?
钥匙被完全拔掉后,我得到的是..:
...
2020-05-06 12:23:19.229709+0200 0x51ac2 Default 0x0 0 0 kernel: DK: IOUserServer(sc.example.MyUserUSBInterfaceDriver-0x100002aad)::exit(CDHash check failed)
2020-05-06 12:23:19.253517+0200 0x51ac2 Default 0x0 0 0 kernel: DK: IOUserServer(sc.example.MyUserUSBInterfaceDriver-0x100002aae)::exit(Entitlements check failed)
...所以我猜钥匙一定在那里。
我正在查看与该应用程序相关的日志行,并使用 log stream --source | grep MyUserUSBInterfaceDriver
我的理解是,你需要有效地列出你的vendordevice ID匹配标准--也就是使用这3种模式之一。
<key>com.apple.developer.driverkit.transport.usb</key>
<array>
<dict>
<key>idProduct</key>
<integer>123</integer>
<key>idVendor</key>
<integer>1234</integer>
</dict>
<dict>
<key>idProduct</key>
<integer>1024</integer>
<key>idProductMask</key>
<integer>65504</integer>
<key>idVendor</key>
<integer>1234</integer>
</dict>
<dict>
<key>idProductArray</key>
<array>
<integer>12345</integer>
<integer>23456</integer>
<integer>34567</integer>
</array>
<key>idVendor</key>
<integer>1234</integer>
</dict>
</array>
明确地说,这意味着权利必须是类型的 阵列 -> 词典.
NB:苹果在大约4周后仍然没有批准我的客户的DriverKit权益请求,所以我仍然在开发签名和禁用部分SIP的情况下操作,但至少在上述情况下,我没有收到任何无效的投诉 com.apple.developer.driverkit.transport.usb
系统日志中的权利(我经常使用 <true/>
).
我假设任何 idVendor
所列出的值也必须由苹果公司在进行分发签名时嵌入你的签名证书中。