我们在 IDE 上工作了很长时间,它具有 com.apple.security.app-sandbox 模式。用户可以从 Internet 下载必要的 SDK(开箱即用)并在我们的 IDE 中使用进行开发。在使用这些 SDK 文件之前,我们多次注意到文件具有隔离属性 (com.apple.quarantine)。由于 El Capitan 的限制政策更严格,此类文件被禁止在沙盒应用程序中使用。为了克服这样的障碍,我们决定在 IDE 中使用这些 SDK 文件之前运行一个 bash 脚本:
#!/bin/bash
SDKPATH=$1
xattr -d -r com.apple.quarantine "$1"
为了顺利运行,我们在我们的应用程序中添加了以下权利:
<key>com.apple.security.scripting-targets</key>
<dict>
<key>com.apple.Terminal</key>
<array/>
</dict>
从已安装的应用程序中,这在 El Cap 中从未起作用。最后我们发现这种特殊的权利使用只能使 bash 脚本正常工作:
<key>com.apple.security.temporary-exception.apple-events</key>
<array>
<key>com.apple.terminal</key>
</array>
不幸的是,Apple 审查团队对上述权利的使用权限非常严格。
是否有任何其他已知方式或权利使用可以使我们运行“xattr”命令并从我们的应用程序中删除扩展属性?