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

如何设置fastlane match默认选择Apple Distribution类型证书?

问题1:为什么fastlane会默认选择iOS distribution证书?

苹果在Xcode 11版本之后才推出跨平台统一的Apple Distribution证书,替代之前拆分的iOS Distribution、Mac Distribution等独立分发证书。你当前使用的fastlane版本属于兼容旧版Xcode的旧版本,内置的默认签名证书搜索规则仍沿用旧的证书类型优先级,所以会优先查找iOS Distribution类型证书。另外如果你的Xcode Runner工程的签名配置未手动指定新的统一证书类型,fastlane读取工程默认遗留配置时也会触发该逻辑。

问题2:能否设置fastlane默认选择Apple Distribution证书?

可以,有两种实现方式:

  1. 升级fastlane到2.205.0及以上版本,该版本之后fastlane已将默认分发证书类型调整为Apple Distribution,无需额外配置即可自动匹配
  2. 若不升级版本,只需修改当前lane中的配置即可:
    • 在match动作的参数中新增certificate_type: "Apple Distribution",明确指定要拉取的证书类型
    • 若修改后仍有报错,可在build_app动作中补充codesign_identity: "Apple Distribution"参数,强制指定签名使用的证书类型

修改后的match配置示例:

match(
      app_identifier: ENV["APP_IDENTIFIER"],
      git_url: ENV["GIT_URL"],
      type: "adhoc",
      readonly: is_ci,
      keychain_name: ENV['MATCH_KEYCHAIN_NAME'],
      keychain_password: ENV["MATCH_KEYCHAIN_PASSWORD"],
      certificate_type: "Apple Distribution" # 新增该行配置
)

如果你的match证书仓库中存储的还是旧版iOS Distribution证书,需要先清空仓库内的旧证书,重新执行一次match adhoc生成并存储新的Apple Distribution类型证书即可。

问题3:fastlane的证书选择逻辑是什么?

fastlane搜索签名证书的优先级从高到低依次为:

  • 第一优先级:用户在match、build_app等动作中手动传入的证书类型、证书ID、codesign_identity等明确指定参数
  • 第二优先级:读取当前Xcode工程/Workspace的签名配置,包括对应Target的签名设置、导出用的exportOptions.plist中的配置项
  • 第三优先级:使用fastlane对应动作的内置默认值,旧版fastlane默认值为iOS Distribution,2.205.0及以上版本已将默认值调整为Apple Distribution
  • 最后在匹配类型的前提下,优先选择本地钥匙串中对应团队ID下、带私钥、有效期最长的有效证书

内容的提问来源于stack exchange,提问作者Dolphin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 12:36:00