Xcode 应用程序未能通过协同设计验证

Xcode 应用程序未能通过协同设计验证,xcode,verification,iphone,codesign,Xcode,Verification,Iphone,Codesign,这是我第一个提交到应用商店的应用程序,我按照《苹果指南》做了所有事情,但当我最终尝试使用分发配置进行构建时,我收到了一个错误和一个警告。这是我的错误和警告构建日志,我想知道是否有人可以告诉我这里发生了什么 warning: Application failed codesign verification. The signature was invalid, or it was not signed with an Apple submission certificate. (-19011)

这是我第一个提交到应用商店的应用程序,我按照《苹果指南》做了所有事情,但当我最终尝试使用分发配置进行构建时,我收到了一个错误和一个警告。这是我的错误和警告构建日志,我想知道是否有人可以告诉我这里发生了什么

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)
而且


发生了什么?

您必须确保在生成设置中选择了正确的证书。对于每个配置文件,您有不同的设置。因此,如果使用“Release”作为AppStore构建,则必须转到项目设置并将“代码符号标识”设置为正确的开发人员证书

对目标也要这样做,我想这就是为什么您会收到这些错误消息。

关于错误: …*.app:对象文件格式无效或不合适

  • 将“可执行文件”(又名CbundleExecutable)Info.plist设置更改为与产品名生成设置不同的内容可能会触发此错误。本例中的快速修复方法是将“Executable file”Info.plist属性还原为以下值:${Executable_NAME}。出现这种情况的原因是,可执行文件名由产品名称、可执行文件前缀和可执行文件后缀生成设置的值的Xcode派生,Xcode在打包应用程序后验证/坚持此格式。通常情况下(默认情况下),可执行_前缀和可执行_后缀是空的,因此可执行文件名称依次与产品名称匹配。因此,将“Executable file”info.plist设置设置为产品名生成设置的值在技术上是可行的(只要可执行前缀和后缀生成设置保持为空),但最好将其值恢复为${Executable_Name}

  • 此错误的另一个原因是Xcode项目上与代码签名相关的生成设置格式错误,或者代码签名设置与建议的设置略有不同。您可以使用以下指南来确保您的项目和密钥链满足代码签名的所有要求,并特别注意这些数字,以检查您的设置是否完全符合Apple的建议。本指南引用了以下推荐章节:具体请参见章节: “验证密钥链配置”和“验证Xcode项目配置”

  • 如果在上述操作之后错误仍然存在,则问题可能是特定于Xcode项目的,而不是签名标识的固有问题。因此,我建议您使用当前版本的Xcode创建一个新的Xcode项目,并将现有代码、资源和框架迁移到新项目中,看看代码符号错误是否仍然存在

    祝你好运

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