【发布时间】:2015-08-19 15:37:05
【问题描述】:
我可以通过 Xcode 6.3.2 完美地提交我的应用程序。验证和分析完美通过。一旦它成功提交到应用商店,虽然我收到了来自 Apple 的电子邮件:
“亲爱的开发者, 我们发现您最近交付的“应用程序”存在一个或多个问题。要处理您的交付,必须更正以下问题: 无效签名 - 代码对象根本没有签名。确保您使用分发证书而不是临时证书或开发证书签署了您的应用程序。验证 Xcode 中的代码签名设置在目标级别是否正确(覆盖项目级别的任何值)。此外,确保您上传的包是使用 Xcode 中的 Release 目标构建的,而不是 Simulator 目标。如果您确定您的代码签名设置正确,请在 Xcode 中选择“Clean All”,删除 Finder 中的“build”目录,然后重新构建您的发布目标。更多信息请咨询https://developer.apple.com/library/ios/documentation/Security/Conceptual/CodeSigningGuide/Introduction/Introduction.html 更正这些问题后,您可以重新交付更正后的二进制文件。”
我已尝试重新下载分发证书,重新生成分发配置文件,将“--deep”添加到代码签名“其他代码签名标志”中。我什至检查了捆绑名称等,一切都是字母数字。我能够在 5 月 22 日提交罚款,现在在 6 月 3 日一切都中断了。
没有任何意义,任何帮助将不胜感激!
更新和解决方案:
虽然我无法很好地解释为什么在上周突然发生这种情况,但今天早上我终于找到了解决方案。
我从一个新项目开始并提交到应用商店,除了标识符和正确的版本和内部版本号之外什么都没有,处理得很好。在那之后,我开始拼凑任何不是我自己的代码的资产,直到我收到“无效的二进制”电子邮件。我将其缩小到导致问题甚至不再使用的 Hockey App SDK(嵌入式框架),因此我将其从项目中删除(问题已解决)。令人不安的部分是,在验证或提交期间我没有任何失败,根据 github,这个目录和内容在一年内没有改变,这让我相信 Apple 的服务器端发生了一些变化。
我确实通过谷歌看到很多帖子说框架需要签名等,当使用 Xcode 6 和 iOS 8 时,它似乎是标准,这就是为什么我认为它可能是这些方面的东西。
我不确定这在我为 iOS 构建时有多大帮助,并且本文参考了 Mac,但 HockeyApp 解释说,为了分发到应用商店,您需要在此处使用自己的身份对框架进行签名:
http://support.hockeyapp.net/kb/client-integration-ios-mac-os-x/hockeyapp-for-mac-os-x
如果有人对此有更多技术说明或为什么会突然改变,我很想更好地理解这一点。
【问题讨论】:
-
Ionic 和 Cordova 也存在同样的问题。您的分发资料是否也无效?
-
在 Apple Development 论坛上,我看到有更多人面临同样的问题。这可能是 iTunes Connect 的问题。
-
Ionic 和 Cordova 也有同样的问题 - 我没有使用任何曲棍球应用程序。非常非常非常沮丧..
-
@schmoopy 对于 ionic,一些 .sh 文件造成了所有这些麻烦。我删除它们后解决了它。这是我得到这个解决方案的地方:github.com/driftyco/ionic-ion-swipe-cards/issues/…
-
@ahmed - 谢谢。我最终通过删除所有 www/lib 并添加回只需要的 js/css 解决了问题——除了一个不会导致问题的构建之外,我没有任何 sh 文件
标签: ios objective-c xcode app-store-connect