无需GitHub或S3,能否用fastlane match安装provisioning profile、p12等证书
fastlane match 同仓库存储证书解决方案
fastlane match完全支持将证书、provisioning profile存储在当前代码所在的同一仓库内,无需额外创建独立存储仓库或S3存储桶,即可完成证书的导入与安装,具体实现方式如下:
操作步骤
- 在代码仓库根目录创建专属的证书存储目录,例如
./match_certs,该目录后续会和业务代码一起提交到仓库 - 执行match初始化命令,指定存储路径为刚才创建的本地目录:
fastlane match init --storage_mode git --git_url ./match_certs
- 按照命令行提示设置加密密码,该密码后续在CI环境中以
MATCH_PASSWORD环境变量传入即可自动解密 - 调整Fastfile中的match配置,示例如下:
lane :install_certs do match( type: "adhoc", # 可替换为appstore/development等你需要的类型 storage_mode: "git", git_url: "./match_certs", # 填写你仓库内证书目录的相对路径 app_identifier: "com.your.app.bundle.id", username: "your_apple_developer_account@example.com" ) end
补充说明
- 你也可以选择
storage_mode: "local"模式,直接指定本地目录作为存储位置,和git模式的区别是不会自动执行git提交操作,你可以手动管理证书目录的提交 - 该方案和独立仓库存储方案的证书导入、安装、更新逻辑完全一致,不会影响现有CI/CD流程的功能
- 不要将
MATCH_PASSWORD明文提交到代码仓库,CI运行时通过环境变量注入即可
内容的提问来源于stack exchange,提问作者Khondoker Ahnaf Prio
相关产品推荐
相关产品推荐

