我如何知道应该为 Mac 沙盒应用程序添加哪些权利项目?

Posted

技术标签:

【中文标题】我如何知道应该为 Mac 沙盒应用程序添加哪些权利项目?【英文标题】:How can I know what entitlement items should be added for Mac sandbox app? 【发布时间】:2015-09-13 03:59:11 【问题描述】:

在Apple关于App Sandbox的文档中,我找到了关于Temporary Exception的内容,Global Mach Service Temporary Exception的值是一个数组,但我确实知道这个数组可以包含哪些项目。

实际上,我希望有一个地方可以检查应该为沙盒应用程序中的特定功能添加哪些权利项目。例如,对于某个功能,也许我应该添加一些com.apple.security.temporary-exception.mach-lookup.global-namecom.apple.security.temporary-exception.files.absolute-path.read-write,但问题是它们是什么。

目前,当该功能无法在沙盒中工作时,我可以在系统日志中找到错误消息,但仍然不知道需要哪些权限。

【问题讨论】:

【参考方案1】:

沙盒的文档非常不一致。它的建议是只使用您想做的任何事情,运行应用程序并检查控制台以查看哪些功能失败。 https://developer.apple.com/library/mac/documentation/Security/Conceptual/AppSandboxDesignGuide/DesigningYourSandbox/DesigningYourSandbox.html#//apple_ref/doc/uid/TP40011183-CH4-SW1

编辑:如果您使用临时例外,则需要在 iTunes 连接中添加它们并详细解释每一个。

【讨论】:

谢谢。顺便说一句,在Apple的文档中,有一条注释:Note: If you request a temporary-exception entitlement, be sure to follow the guidance regarding entitlements provided on the iTunes Connect website. In particular, identify the entitlement and corresponding issue number in the App Sandbox Entitlement Usage Information section in iTunes Connect and explain why your app needs the exception.这是否意味着您应该在您的应用程序和iTunes Connect中添加临时例外权利项目? @GoKu 如果答案对您有帮助,您能否使用绿色复选标记将其标记为已接受?谢谢 :-)

以上是关于我如何知道应该为 Mac 沙盒应用程序添加哪些权利项目?的主要内容,如果未能解决你的问题,请参考以下文章

从沙盒应用程序锁定 Macbook 屏幕

如何在启用 Mac App Sandbox 的情况下运行 Shell 脚本?

如何为 IOKit 属性设置临时权利?

Mac App 中的 CoreBluetooth 权利

Mac 沙盒和文件 ioctl

允许在 Mac OS X 应用程序中读取文件的权利是啥? (拒绝文件读取数据错误)