应用程序验证失败

时间:2010-09-06 23:55:59

标签: xcode verification iphone codesign

这是我第一个提交到应用程序商店的应用程序,我根据苹果指南做了一切,但是当我最终尝试使用分发配置构建时,我收到一个错误和一个警告。这是我的错误和警告的构建日志,我想知道是否有人能告诉我这里发生了什么。

warning: Application failed codesign verification.  The signature was invalid, or it was not signed with an Apple submission certificate. (-19011)
failed to extract requirements data: 1
/Users/xxxx/Desktop/xxxx/build/Distribution-iphoneos/xxxxx.app: object file format invalid or unsuitable
failed to extract entitlements: 1
 - (null)

此外,

    /Users/xxxxxx/Desktop/xxxxx/build/Distribution-iphoneos/xxxxxxx.app: object file format invalid or unsuitable
Command /usr/bin/codesign failed with exit code 1

发生了什么事?

2 个答案:

答案 0 :(得分:0)

您必须确保在构建设置中选择了正确的证书。对于每个配置文件,您有不同的设置。因此,如果您使用“Release”作为AppStore版本,那么您必须转到项目设置并将“代码签名身份”设置为正确的开发人员证书。

为目标执行相同操作,我认为这就是您收到这些错误消息的原因。

答案 1 :(得分:0)

关于错误: ... * .app:目标文件格式无效或不适合

  1. 对“可执行文件”(也称为CFBundleExecutable)的更改Info.plist设置为与“产品名称”构建设置不同的内容可能会导致此错误。在这种情况下,快速解决方法是将“可执行文件”Info.plist属性恢复为以下值:$ {EXECUTABLE_NAME}。出现这种情况的原因是因为可执行文件的名称是由Xcode派生的PRODUCT_NAME,EXECUTABLE_PREFIX和EXECUTABLE_SUFFIX构建设置的值,Xcode在打包应用程序后验证/坚持这种格式。通常(并且默认情况下)EXECUTABLE_PREFIX和EXECUTABLE_SUFFIX为空,因此可执行文件名称依次与产品名称匹配。因此,将“可执行文件”info.plist设置设置为等于产品名称构建设置的值将在技术上有效(只要可执行前缀和后缀构建设置保持空白),但将其值恢复为$ {EXECUTABLE_NAME}是最好的

  2. 此错误的另一个原因是Xcode项目上与代码签名相关的构建设置格式不正确,或者代码签名设置略微不同于建议的设置。您可以使用以下指南来确保您的项目和钥匙串满足代码签名的所有要求,并特别注意数字,以检查您的设置是否完全符合Apple的建议。本指南引用了以下建议部分:"Understanding and Resolving Code Signing Issues"具体来说,请参阅以下部分: “验证密钥链配置”和“验证Xcode项目配置”。

  3. 如果在上述情况之后错误仍然存​​在,则可能是Xcode Project特定问题与签名身份的固有问题有关。因此,我建议使用当前版本的Xcode创建一个新的Xcode项目,并将现有的代码,资源和框架迁移到新项目中,并查看代码签名错误是否仍然存在。

    祝你好运,