Mac OS应用程序,带命令行工具的沙箱?

时间:2012-08-06 01:40:01

标签: macos sandbox command-line-tool

我制作了一个包含命令行工具的应用程序。我启用了应用程序的沙箱,并测试了它的工作原理。我还对应用程序和命令行工具进行了代码签名。

但是当我将应用程序上传到iTunes时,我收到一封电子邮件,告诉我“App沙箱未启用”。

显然,我需要设置具有com.apple.security.app-sandbox值的密钥true的权利文件,并列出可执行文件:/Contents/MacOS/myApp/contents/Frameworks/x86/myCommandLineTool

我确定我已经在Xcode中启用了沙箱,所以我认为问题出在命令行工具上。

如何为命令行工具启用沙箱?或者是否应该放置该工具的特定文件夹?欢迎任何建议 - 我已经困扰了好几天。

1 个答案:

答案 0 :(得分:24)

我有同样的问题,经过一些搜索,试用和错误,这对我有用:

  1. 创建一个权利文件 - 对我来说,只是将com.apple.security.inherit设置为YES。我用xcode本身创建了这个文件。

  2. 现在使用以下命令对此命令行工具进行签名:

    codesign --entitlements ./entitlements.plist -s "copy & paste your certificate from keychain" ./commandlinetool   
    
  3. 为了确定,请使用以下命令进行检查:

    codesign --display --entitlements - ./commandlinetool   
    
  4. 此工具已包含在项目中。所以只需编译,存档&提交

  5. 状态现在正在“等待审核”。