SwiftUI项目模拟器运行正常,真机编译报CodeSign failed错误如何解决
Xcode 11.1 真机编译
Command CodeSign failed with a nonzero exit code 报错解决方法 优先执行基础清理操作
- 关闭Xcode后执行命令清空编译缓存:
rm -rf ~/Library/Developer/Xcode/DerivedData - 若项目使用CocoaPods,删除项目根目录下的
.xcworkspace、Pods文件夹与Podfile.lock文件,重新执行pod install生成新的项目配置文件。 - 打开Xcode项目的
Signing & Capabilities选项卡,取消勾选再重新勾选「Automatically manage signing」,选择对应开发团队,等待Xcode自动拉取最新的签名描述文件。
适配Big Sur系统的专属修复
该报错大概率是Xcode 11系列与Big Sur系统的签名工具兼容性问题导致,可通过以下两种方案修复:
- 替换Xcode内置签名工具:执行命令
sudo cp /usr/bin/codesign /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign
用系统原生的codesign工具替换Xcode 11内置的旧版本签名工具,执行完成后重启Xcode重新编译。 - 若上述方案无效,在项目的
Build Settings中搜索Other Code Signing Flags,添加参数--generate-entitlement-der,适配Big Sur的新签名规则。
修正证书信任配置
- 打开钥匙串访问,找到对应的开发证书,右键选择「显示简介」,展开「信任」分类,仅将「代码签名」选项设置为「始终信任」,其余选项保持「使用系统默认」,保存修改后输入系统密码确认。
额外校验项
- 确认iPhone 6S+的系统版本不高于Xcode 11.1支持的最高版本(iOS 13.1),若手机系统版本更高,需下载对应版本的iOS设备支持包,放置到
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport目录下,重启Xcode后再编译。 - 确认该iPhone的UDID已经添加到开发团队的设备列表中,签名描述文件包含该设备权限。
内容的提问来源于stack exchange,提问作者user3378137
相关产品推荐
相关产品推荐

