如何解决在上传至iTunes Connect时出现的“应用程序无法通过代码签名验证”的问题?

31

我遇到了一个问题,尽管在不同的资源中进行了深入搜索,但仍无法解决大部分“类似”问题都是关于 Icon.png 大小等错误的情况...

我已经尝试上传我的应用程序,并验证了以下内容:

  • 在我的设备上正确构建和运行
  • 我的证书已正确安装
  • 我的证书/配置文件没有过期。
  • Icon.png 的大小和格式为 57x57 PNG。
  • 以及其他几件事。
  • 运行了 codesign --verify -vvvv MyApp.app ,结果正常。
  • 我的 ZIP 文件已正确完成

当我尝试通过 iTunes 连接界面上传时,我会遇到上述简单的错误,这就是我尝试使用 ApplicationLoader 的原因,以查看控制台中出错的原因。

控制台显示如下:

16/02/10 13:25:52   ApplicationLoader[549]  *** Codesign error (please ignore invalid option comments): got requirements(0x800000, 534)
Executable=/var/folders/WZ/WZu24JnOGNe9L79GWq0IlU+++TI/-Tmp-/MyApp.zip/MyApp.app/MyApp
Identifier=com.realtimed.MyApp
Format=bundle with Mach-O thin (armv6)
CodeDirectory v=20100 size=829 flags=0x0(none) hashes=33+5 location=embedded
Signature size=4333
Authority=iPhone Developer: My Name (XXXXXXXXX)
Authority=Apple Worldwide Developer Relations Certification Authority
Authority=Apple Root CA
Signed Time=16/02/2010 13:22:24
Info.plist entries=17
Sealed Resources rules=3 files=28
Internal requirements count=1 size=144

Executable=/var/folders/WZ/WZu24JnOGNe9L79GWq0IlU+++TI/-Tmp-/MyApp.zip/MyApp.app/MyApp
got entitlements(0x800400, 317)
codesign_wrapper-0.7.3: using Apple CA for profile evaluation
codesign_wrapper-0.7.3: Caling codesign with the following args:
codesign_wrapper-0.7.3:    /usr/bin/codesign
codesign_wrapper-0.7.3:    --verify
codesign_wrapper-0.7.3:    -vvvv
codesign_wrapper-0.7.3:    -R=anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.1] exists and certificate leaf[field.1.2.840.113635.100.6.1.4] exists
codesign_wrapper-0.7.3:    --entitlements
codesign_wrapper-0.7.3:    /var/tmp/signingbox/codesign_wrapper_entitlements.plist
codesign_wrapper-0.7.3:    /var/folders/WZ/WZu24JnOGNe9L79GWq0IlU+++TI/-Tmp-/MyApp.zip/MyApp.app
**/var/folders/WZ/WZu24JnOGNe9L79GWq0IlU+++TI/-Tmp-/MyApp.zip/MyApp.app: valid on disk
/var/folders/WZ/WZu24JnOGNe9L79GWq0IlU+++TI/-Tmp-/MyApp.zip/MyApp.app: satisfies its Designated Requirement
test-requirement: failed to satisfy code requirement(s)
codesign_wrapper-0.7.3: failed to execute codesign(1)**
任何帮助/反馈或解决该情况的想法都将不胜感激。
4个回答

41

在深入查看日志文件后,我找到了解决此问题的方法。

虽然我创建了自己的分发配置文件,并将代码签名标识指定为开发人员证书的正确值,但它仍然会给我一个错误提示:“应用程序无法通过代码签名验证”。

问题出在以下这一行:

Authority=iPhone Developer: My Name (XXXXXXXXX)

尽管在项目设置中正确选择了分发配置文件,但XCode还是使用开发者证书进行编译。

我最终解决了这个问题:右键单击“Targets”->获取信息->选择(别问我为什么)错误的分发证书而不是正确的证书。

我纠正了这个问题,并最终成功地接受了它。

相关链接(需要开发者帐户):https://devforums.apple.com/message/147964


太棒了!!!谢谢你...我已经尝试过两次卸载Xcode并重新安装它,我尝试修复我的权限和在启动时修复磁盘,我尝试删除所有证书和配置文件并重新创建它们...等等...而我所需要的只是几个点击就可以解决这个问题。苹果公司简直让我绝望,我总是因为不同的原因而不断地遇到这个错误。无论如何,非常感谢!!! - Christian Gossain
是的!当我提交我的应用程序时,我也遇到了这个问题。我认为我已经浏览了每一个下拉菜单,将它们都切换到了分发模式,但那个该死的菜单仍然停留在开发者模式。谢谢你! - Mike Rundle
谢谢!在我的情况下,分发标识指向了正确的证书,但发布标识没有。因此,请确保两者都选择了分发证书,而不仅仅是分发。 (我使用XCode的存档选项) - Jacco

10

非常棒的文章。我也遇到了这个问题,经过很多头痛之后才意识到应该检查项目和目标是否使用了正确的代码签名身份。不知怎么地,Xcode总是回退到开发者配置文件而不是发布配置文件,甚至在我有意选择正确配置文件后仍然如此!

I. 为了安全起见,请首先执行以下操作:

  1. 清理所有构建。
  2. 在Finder中删除构建文件夹中的内容。
  3. 从项目和目标设置中删除现有的代码签名身份。
  4. 重新启动Xcode。

II. 然后检查项目使用的正确配置文件:

  1. 进入项目设置 > 构建选项卡 > 代码签名身份
  2. 选择适当的发布配置文件

III. 现在检查目标:

  1. 目标 > 获取信息 > 构建选项卡 > 代码签名身份
  2. 选择适当的发布配置文件

IV. 祈求吧,希望您再也不会看到那个可恶的小黄三角了。


5
Cy采用了正确的方法来解决这个问题-当“应用程序未通过代码签名验证”是一个构建警告时,扩展构建日志中的该项并扫描签名验证失败的根本原因。在Cy的原始帖子中,您会看到根本问题是“测试要求:无法满足代码要求”,根据我的经验,这几乎总是由于使用错误的证书进行签名,即iPhone开发人员配置文件而不是iPhone分发。根本原因并不总是一个明显的解释,但至少应该引导您使用其他搜索词或故障排除思路。对于在Xcode存档验证或提交期间遇到“应用程序未通过代码签名验证”的其他人,请查看产品>归档时间的构建日志,以获取相同标题的构建警告并扩展其根本原因。然后,请查看苹果关于此错误可能原因的完整列表,网址如下"如何解决错误:应用程序未通过代码签名验证?"

1

请检查目标(而不仅仅是项目)是否已经设置了正确的发布代码签名身份。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接