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

din*_*aur 21 macos sandbox command-line-tool

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

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

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

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

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

jju*_*ude 24

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

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

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

    codesign --entitlements ./entitlements.plist -s "copy & paste your certificate from keychain" ./commandlinetool   
    
    Run Code Online (Sandbox Code Playgroud)
  3. 只是为了确定,请使用以下命令检查:

    codesign --display --entitlements - ./commandlinetool   
    
    Run Code Online (Sandbox Code Playgroud)
  4. 该工具已包含在项目中.所以只需编译,存档和提交

状态现在正在"等待审核".