You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

自托管GitHub Runner上Xcode CodeSign失败:无法构建自签名根证书链

解决自托管MacMini M1 Runner的iOS签名链错误

可能的原因及修复步骤

  • 缺少Apple WWDR根证书
    GitHub托管的Runner预装了完整的Apple根证书链,全新MacMini默认可能缺失旧版WWDR证书(Xcode 14.2依赖2019版WWDR根证书,而非最新的2023版)。
    操作:

    1. 打开「钥匙串访问」,切换到「系统」钥匙串的「证书」分类
    2. 导入Apple WWDR根证书(确保是2019年发布的版本)
    3. 右键证书选择「显示简介」,在「信任」栏设置「使用此证书时」为「始终信任」
  • 证书导入的钥匙串位置错误
    官方脚本默认将证书导入「登录」钥匙串,但自托管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/xcodebuild
    
  • Fastlane未指定正确钥匙串
    在fastlane的build_ios_app lane中,明确指定证书所在的系统钥匙串路径,避免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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 19:20:11