Xcode因"代码签名"错误而失败

rjs*_*ing 17 iphone xcode code-signing ios xcrun

替代标题

(帮助搜索)

  • Xcode'CodeSign错误:需要代码签名'
  • Xcode:iPhone app的编码错误
  • / usr/bin/codesign失败,退出代码为1
  • Jenkins因Code Sign错误而失败
  • 命令行构建失败,并且"找不到配置文件"
  • 存档Xcode项目失败,出现配置错误
  • 在Xcode中缺少签名证书

症状

这个问题通过以下几种方式表现出来:

  • 在设备上运行您的应用程序会导致引用"代码签名"或"过期签名证书"的错误
  • 从命令行构建(或使用连续集成系统,如Jenkins)失败,出现类似于此的错误:

    Check dependencies
    Code Sign error: No unexpired provisioning profiles found that contain any of the keychain's signing certificates
    
    Run Code Online (Sandbox Code Playgroud)
  • 使用"代码签名"或"过期签名证书"归档应用程序失败,其中运行或构建正常工作.

通常,项目可能有多个配置,有时只有一个子集会失败.删除和重新生成配置文件无效.

rjs*_*ing 31

CODE_SIGN_IDENTITY验证脚本.

通常在使用版本控制的设置中,可以以可以插入project.pbxprojCODE_SIGN_IDENTITY行的方式合并.这似乎在某些情况下(如命令行构建或存档)导致Xcode问题.

一个tell-tail符号是project.pbxproj文件中与此类似的行(右键单击项目并选择"Show Package Contents ...")

"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_IDENTITY = "iPhone Distribution";
Run Code Online (Sandbox Code Playgroud)

删除其中一行将允许您在"构建设置"中选择正确的值,并且应该再次正确构建项目.

我创建了简单的脚本来帮助诊断这个问题,可以在这里找到:https://github.com/rjstelling/Xcode-Project-Validate