2

我们请求获得使用 bundle id 访问具有 bundle id的com.apple.developer.driverkit.userclient-accessDriverkit 驱动程序的权利的请求已得到处理,但我们不确定我们是否获得了正确的权利。当我们为应用程序生成一个新的配置文件并检查它时,配置文件中的权利会说:com.example.drivercom.example.appsecurity 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>

读到这里,看起来com.apple.developer.driverkit.userclient-access键值应该是一个数组而不是一个布尔值(这里的注释表明它com.apple.developer.driverkit.userclient-access可以是一个布尔值,但只有当权利是用于与另一个 dext 通信的 dext 时)

配置文件中的上述权利是否正确?如果没有,权利应该如何?如果有人可以在配置文件中发布可以与 driverkit 驱动程序通信的应用程序的权利,那将非常有帮助。

4

1 回答 1

2

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也是必需的。

于 2021-01-13T21:03:40.607 回答