我们请求获得授权com.apple.developer.driverkit.userclient-access,以便为绑定id为com.example.app的应用程序获取绑定id为com.example.app的驱动程序包驱动程序,但我们不确定是否获得了正确的授权。当我们为应用程序生成一个新的配置配置文件并使用security cms -D -i检查配置文件中的授权时,它会这样说:
<key>Entitlements</key>
<dict>
<key>com.apple.developer.driverkit</key>
<true/>
<key>com.apple.developer.driverkit.userclient-access</key>
<true/>
<key>com.example.driver</key>
<true/>
<key>com.apple.developer.system-extension.install</key>
<true/>
<key>com.apple.application-identifier</key>
<string>1234567890.com.example.app</string>
<key>keychain-access-groups</key>
<array>
<string>1234567890.*</string>
</array>
<key>com.apple.developer.team-identifier</key>
<string>1234567890</string>
</dict>读取here时,看起来com.apple.developer.driverkit.userclient-access键值应该是数组而不是布尔值(注释here表明com.apple.developer.driverkit.userclient-access可以是布尔值,但这仅在权限用于与另一个dext通信的dext时)
配给配置文件中的上述权利文件是否正确?如果不是,权利应该是什么?如果有人可以在配置文件中发布可以与驱动程序包驱动程序通信的应用程序的授权,这将是非常有帮助的。
发布于 2021-01-14 05:03:41
com.apple.developer.driverkit.userclient-access键实际上应该是一个字符串数组,其中列出了包ID。这是我的“演示”DriverKit项目中应用程序的.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.userclient-access</key>
<array>
<string>eu.dennis-jordan.DemoDriver.DemoDriverExtension</string>
</array>
<key>com.apple.developer.system-extension.install</key>
<true/>
<key>com.apple.security.app-sandbox</key>
<true/>
<key>com.apple.security.temporary-exception.iokit-user-client-class</key>
<array>
<string>IOUserUserClient</string>
</array>
</dict>
</plist>请注意,这是一个沙箱应用程序,这就是为什么还需要com.apple.security.temporary-exception.iokit-user-client-class。
https://stackoverflow.com/questions/65682551
复制相似问题