无效签名错误!
Posted
技术标签:
【中文标题】无效签名错误!【英文标题】:Invalid Signature error ! 【发布时间】:2011-02-20 11:21:56 【问题描述】:我正在尝试更新我的应用程序,但在上传二进制文件后,iTunes Connect 会向我发送这封电子邮件:
尊敬的开发者,感谢您的 最近提交的“MY APP”二进制文件 到应用商店。不幸的是我们 发现您的二进制文件存在问题 您需要按顺序更正 让您的申请继续 审查阶段。具体问题是 概述如下: 无效签名 - 确保您已签署您的 带有分布的应用程序 证书,而不是临时证书 或开发证书。核实 代码签名设置在 Xcode 在目标级别是正确的 (覆盖任何值 项目级别)。此外,使 确定你上传的包是 在 Xcode 中使用 Release 目标构建, 不是模拟器目标。如果你是 某些您的代码签名设置是 正确,在 Xcode 中选择“Clean All”, 删除“build”目录 Finder,并重建您的版本 目标。一旦你纠正了 问题,请返回 应用程序的版本详细信息页面 iTunes Connect 管理您的 应用程序模块,然后单击 准备提交二进制按钮。这 将带您了解二进制文件 提交流程并返回您的 应用程序版本状态为等待 上传。然后你可以使用 应用程序加载器上传您的新 二进制。如果发现任何其他问题 随着您的提交,您将成为 联系了。谢谢, iTunes 连接团队
我确信我的带有分发证书的二进制签名应用程序不是 AD HOC !!!
你有什么解决这个问题的建议!我从来没有遇到过这个问题!!!!!!
我再次下载了应用程序分发 CER,但没有任何变化!我在应用商店有 6 个应用,但从未遇到过这种情况
【问题讨论】:
【参考方案1】:请注意,此 QA 非常古老。苹果在很大程度上改善了这个问题。享受吧。
100 次中有 99 次,这是问题所在:
选择“目标”,而不是“项目”
单击 XCode6 主窗口左上角的项目名称。 (即,就在它可能显示“类”的位置上方。)
看看打开的大面积区域。仔细查看左侧的白色列。
选择“目标”...而不是“项目”
那么,将您的证书正确设置为第 3 方 Mac Developer 证书。
【讨论】:
真正的问题是为什么验证器/上传器没有捕捉到这个! 您所说的这个“证书”是什么?设置的名称是什么?我看到一个“代码签名身份”,但那是一个配置文件 - 而不是证书。【参考方案2】:我收到了来自 Apple 的相同消息,并且在设置代码签名身份时选择“目标”而不是“项目”并没有解决我的问题。
事实证明,作为将应用程序提交到商店的最后一步(通过 XCode4 的管理器面板 - 存档选项卡),我看到了一个对话框表,其中显示了将要提交的分发证书,这是默认的我的钥匙串中的不同分发证书 - 而不是我签署应用程序的有效证书!
一旦我在应用程序提交的最后一步手动选择了正确的分发证书,它就可以正常运行。 (我还打开了我的 Keychain Access 应用程序并删除了有问题的分发配置文件,我不再使用它了)。
【讨论】:
【参考方案3】:我想提出的一个要点是存档验证(或通过 App Loader 提交)应该在将应用程序发送到 iTunes 之前识别签名问题连接。这是问题与开发人员工具错误有关的第一个迹象。
与多个开发人员一起目睹了这个问题,增强了这种预感。根据我的经验,由于旧版本 Xcode 中的错误,在客户端验证期间未捕获 “无效签名” 诊断。开发人员只需将他们的 OS X 更新到 10.7.x 和 Xcode 4.2.1,并且无需更改项目或代码,应用程序就可以毫无问题地导入 iTunes Connect。
请记住,其他遇到此问题的人...在使用 Xcode 4.0.2、3.2.6 或更低版本的 Snow Leopard 上尤其常见。
Apple 的新出版物涉及这一点,请参阅iTunes Connect Store - Binary Rejection emails - Invalid Signature。
【讨论】:
【参考方案4】:我遇到了完全相同的问题,检查了所有内容但找不到任何问题。
问题最终是因为我的项目存储在 FAT32 U 盘上!将其复制到我的 Mac 上,之后一切正常。
希望这会有所帮助!
【讨论】:
您能提供更多信息吗?这对提交有何影响?您的意思是直接从 U 盘上传到应用程序加载器?【参考方案5】:我遇到了同样的问题,花了很多晚上解决它!
对于我的应用,问题是可执行文件名称中的问号。在苹果开发人员文档中指出,您不能在可执行文件名称中使用特殊字符,但不允许使用哪些特殊字符。 我在构建设置中更改了可执行文件名称,上传成功!
【讨论】:
【参考方案6】:我已经为这个问题奋斗了将近一个星期!对我来说,事实证明来自 Apple 的错误电子邮件是完全错误和误导的。 (我知道我所有的证书和代码签名设置实际上都是正确的。)事实证明,我的应用程序被拒绝了,因为名称中有一个感叹号(!)。显然,产品名称只允许使用字母数字字符(A-Z、0-9)和破折号。 (不允许使用 ?#$% 等字符。)
解决办法:
1.) 点击 Xcode 左侧面板上的蓝色项目图标。
2.) 单击构建设置选项卡。
3.) 从菜单中选择当前目标。 (它就在蓝色项目图标旁边。
4.) 向下滚动,直到看到“包装”类别。
5.) 找到显示“产品名称”的位置并将其更改为不包含任何特殊字符的名称。
我希望这会有所帮助!抱歉,我不得不把我的公司信息涂掉!
【讨论】:
以上是关于无效签名错误!的主要内容,如果未能解决你的问题,请参考以下文章
xcode 8.3.2 错误的包标识符、无效的代码签名标识符和无效的代码签名权利