2012-08-06 122 views
18

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

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

显然,我需要设置的关键com.apple.security.app-sandbox授权文件与true值,并列出了可执行文件:/Contents/MacOS/myApp/contents/Frameworks/x86/myCommandLineTool

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

如何启用沙盒的命令行工具?还是有一个特定的文件夹,我应该把这个工具?任何建议的欢迎 - 我已经困扰了好几天。

+0

感谢andrewdotnich的编辑。 – dinosaur 2012-08-06 03:39:22

回答

22

我有同样的问题和一些搜索,审判&错误之后,这是对我工作:

  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. 这个工具已经包含在项目中。所以只要编,归档&提交

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

+0

非常感谢。 :) – dinosaur 2012-08-27 03:02:51

+0

谢谢你。你救了我的一天! – rmvz3 2013-01-30 20:40:42

+0

这只是我的一天!谢谢! – SevenBits 2014-12-10 21:40:40