自托管GitHub Runner上Xcode CodeSign失败:无法构建自签名根证书链
解决自托管MacMini M1 Runner的iOS签名链错误
可能的原因及修复步骤
缺少Apple WWDR根证书
GitHub托管的Runner预装了完整的Apple根证书链,全新MacMini默认可能缺失旧版WWDR证书(Xcode 14.2依赖2019版WWDR根证书,而非最新的2023版)。
操作:- 打开「钥匙串访问」,切换到「系统」钥匙串的「证书」分类
- 导入Apple WWDR根证书(确保是2019年发布的版本)
- 右键证书选择「显示简介」,在「信任」栏设置「使用此证书时」为「始终信任」
证书导入的钥匙串位置错误
官方脚本默认将证书导入「登录」钥匙串,但自托管CI环境下,xcodebuild/codesign可能无法访问登录钥匙串。需修改安装脚本,将证书导入系统钥匙串并授权:# 导入开发/发布证书到系统钥匙串 security import "$CERTIFICATE_PATH" -k /Library/Keychains/System.keychain -P "$CERTIFICATE_PASSWORD" -T /usr/bin/codesign -T /usr/bin/xcodebuild # 导入WWDR证书到系统钥匙串 security import "$WWDR_CERT_PATH" -k /Library/Keychains/System.keychain -T /usr/bin/codesign -T /usr/bin/xcodebuildFastlane未指定正确钥匙串
在fastlane的build_ios_applane中,明确指定证书所在的系统钥匙串路径,避免Fastlane默认使用登录钥匙串:lane :build do build_ios_app( ... keychain_path: "/Library/Keychains/System.keychain", use_automatic_signing: false, # 手动签名时需指定 provisioning_profile_specifier: "你的描述文件名称" ) end验证证书与描述文件匹配性
执行以下命令查看已安装的签名身份,确认证书UUID与描述文件中的证书UUID一致:security find-identity -v -p codesigning同时检查描述文件是否正确导入到
~/Library/MobileDevice/Provisioning Profiles/目录,文件名需为.mobileprovision格式。
内容的提问来源于stack exchange,提问作者mahega
相关产品推荐
相关产品推荐

