【发布时间】:2014-09-01 01:22:30
【问题描述】:
我的新应用正处于 beta 测试阶段,但我遇到了一个问题,我花了两天时间研究和试验。
该应用适用于 Mac App Store。我让 Xcode 5 自动处理代码签名和配置,因此在 Build Settings 中,代码签名身份只是设置为“Mac Developer”。我还使用--deep 选项(我知道不推荐)对应用程序包含的所有嵌入式框架进行签名。主应用程序还包含一个嵌入式帮助应用程序(一个实际的 .app 包,这可能是问题所在)。
- 应用编译没有问题。
- 它通过了 App Store 验证就好了。
- 我可以在 Xcode 中运行应用程序,主应用程序可以启动帮助程序帮助。
- 我还可以从 Finder 中的构建位置运行应用,并且仍然可以启动帮助应用。
当我将应用程序移出构建文件夹或将其放在另一台计算机上进行测试时,问题就出现了。主应用程序运行良好(所有 Apple 服务,如 MapKit,功能正常),但主应用程序无法启动辅助应用程序,控制台日志显示:
lsboxd[344]: Not allowing process 18553 to launch "/Users/Brian/Desktop/MainApp.app/Contents/MacOS/HelperApp.app" because the security assessment verdict was denied.
lsboxd[344]: Not allowing process 18553 to register app "/Users/Brian/Desktop/MainApp.app/Contents/MacOS/HelperApp.app" for launch.
显然存在一些代码签名/沙盒问题。在提交给 Apple 并且用户通过 App Store 下载它之后,所有可能都可能正常工作,但我希望能够在它达到那一步之前对其进行测试 .
任何建议将不胜感激。谢谢!
【问题讨论】:
-
如果您认为这是代码签名问题,这是一个很好的指南:furbo.org/2013/10/17/code-signing-and-mavericks
-
运行命令
spctl -a -v path/to/MainApp.app会得到什么? -
运行
spctl -a -v path/to/MainApp.app返回“拒绝”。这并不令人鼓舞。我在我的调试版本以及使用我的 Mac 开发人员证书为该应用程序签名的存档应用程序上运行它。虽然更改用户/组,然后按照 Lionel_A 的建议从应用程序运行应用程序确实允许帮助应用程序运行。 -
我通过 RB App Checker Lite 运行了我的应用程序的两个版本,它指出了一个问题:
Gatekeeper assessment: FAIL (missing/invalid authority).raw Assessment: { "assessment:authority" = { }; "assessment:originator" = "Mac 开发者:Brian Toth (########)"; “评估:远程”= 1; “评估:判决”= 0; }
标签: xcode macos sandbox code-signing appstore-sandbox