在 Mac App Store 提交时签名无效

Invalid signature when submitting on Mac App Store

我正在从 Unity 为 Mac App Store 开发游戏,其中我在 Xcode 中创建了一个插件作为 .bundle 文件。我可以通过终端对我的游戏进行协同设计和打包,但是当我尝试通过应用程序加载器提交包时出现问题。我会尽量彻底解释一切:

程序包在 iTunes Connect 上上传,但最后我收到以下警告:

WARNING ITMS-90239: "Invalid Signature. A sealed resource is missing or invalid. The binary at path [Panda Commander Air Combat.app/Contents/Plugins/InAppPurchase.bundle/Contents/MacOS/InAppPurchase] contains an invalid signature. Make sure you have signed your application with a distribution certificate, not an ad hoc certificate or a development certificate. Verify that the code signing settings in Xcode are correct at the target level (which override any values at the project level). If you are certain your code signing settings are correct, choose "Clean All" in Xcode, delete the "build" directory in the Finder, and rebuild your release target."

我可以单击 "Next" 并完成我的提交,但必须解决此警告,因为我收到来自 iTunes Connect 的邮件,其中包含必须更正的问题:

UNABLE TO SIGN - This package doesn't meet the current code signing requirements. For more information, see the Code Signing and Application Sandboxing Guide [1] and Technical Note 2206 [2].

Specifically, codesign generated the following error:

webelinx.appstore.panda.pkg/Payload/Panda Commander Air Combat.app/Contents/Plugins/InAppPurchase.bundle: unsealed contents present in the bundle root

Once these issues have been corrected, you can then redeliver the corrected binary.

[1] http://developer.apple.com/library/mac/#documentation/Security/Conceptual/CodeSigningGuide/AboutCS/AboutCS.html [2] https://developer.apple.com/library/mac/technotes/tn2206/_index.html

我的插件实际上已登录 Xcode,我已经为 Mac App Store 专门为此插件创建了新的捆绑 ID 和分发配置文件,并在代码签名选项卡中设置了所有内容。代码签名身份是 3rd Party Mac Developer Application 并选择了适当的配置文件。当我构建这个包时,它要求我允许代码签名,然后当我在终端中使用 "codesign -dvvv" 命令检查它时,我可以看到代码签名的详细信息。如果我不对它进行代码签名,我会在上传我的包时收到另一个警告,提示该包根本没有签名。我什至尝试按照警告中的建议做一个 "Clean all",删除 "build" 目录并重建包,但没有效果,再次出现警告。

如何解决这个警告?我是否遗漏了一些重要的东西或试图以错误的方式解决问题? 任何帮助将不胜感激,因为我目前没有选择。

提前致谢!

好的,我解决了我的问题。我遗漏了一些东西,我在这里找到了解决方案:http://forum.unity3d.com/threads/signing-mac-app-on-os-x-mavericks.206762/。 我仍然需要做的是手动对 .app 文件中 Contents/Frameworks 和 Contents/Plugins 目录中的每个文件进行代码签名,并删除我的插件中的所有 .meta 文件。完成这些步骤后,我再次对整个 .app 文件进行了代码签名,并创建了一个包,我在没有发出上述警告的情况下将其上传到 iTunes Connect。