是否可以使用 "com.apple.security.temporary-exception.files.absolute-path.read-write " 为 OSX 应用程序获得对 /Library/ 的写入权限

Is it possible to get a write permission to /Library/ for OSX app with "com.apple.security.temporary-exception.files.absolute-path.read-write "

来自苹果的文档 "com.apple.security.temporary-exception.files.absolute-path.read-write " 允许 read/write 访问指定绝对路径中的指定文件或目录。”满足所有沙盒标准。

https://developer.apple.com/library/mac/documentation/Miscellaneous/Reference/EntitlementKeyReference/Chapters/AppSandboxTemporaryExceptionEntitlements.html

这是否可以通过 SMJobBless 或执行授予库文件路径权限的苹果脚本实现?

Apple 分发指南说 OS X 应用程序应该被沙盒化。 https://developer.apple.com/library/mac/documentation/Security/Conceptual/AppSandboxDesignGuide/AboutAppSandbox/AboutAppSandbox.html#//apple_ref/doc/uid/TP40011183-CH1-SW1

这个问题有几个答案。

  • 是的,可以写入 /Library/ 临时例外
  • 应用程序在通过 Mac App Store
  • 分发时必须进行沙盒处理
  • 否则他们应该这样做,但这不是强制性的
  • 添加临时例外写入 /Library/ 时,您将不会通过审核进入 Mac App Store
  • SMJobBless 和 AppleScript 不会帮助写入您没有权限的文件

还有其他方法可以实现您的目标:

  • 要求用户获得使用 NSOpenPanel 写入的权限
  • 在 Mac App Store
  • 之外分发

最后:你到底想写什么?可能还有其他 API 可以改变行为。