26

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

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

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

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

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

4

1 回答 1

27

我遇到了同样的问题,经过一些搜索、反复试验,这对我有用:

  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. 该工具已包含在项目中。所以只需编译、存档和提交

状态现在是“等待审核”。

于 2012-08-25T08:08:57.123 回答