match 管理证书&描述文件

1,317 阅读3分钟

match是fastlane提供的一种全新的管理证书的方式,它使团队所有成员共享一份代码签名,以减免不必要的证书创建,描述文件失效等问题。

1. 为什么使用match

1.1 问题

  • 在团队开发中证书(certs)与描述文件(profiles),有时候会被创建多次,新旧同时在用。并且描述文件由于新旧不同导致某些测试设备没有加入,造成无法测试、打包失败等会等问题。

1.2 match的优势

  • match使所有成员共享一份证书和描述文件,减少管理和维护成本
  • match简化请求证书、生成描述文件、注册设备等工作,终端一行命令全部完成。
  • match使用git管理所有的证书和描述文件,所以只要新人拥有git的访问权限,安装了fastlane,新的设备就可以迅速投入工作
  • match对新开发者极其友好,远离证书配置大坑

2. match使用

在使用Match之前,你需要配置fastlane环境。fastlane是用于配置iOS和Android的持续集成的神器,而match只是其中一项功能。具体安装请参考这篇文章 fastlane安装指南

2.1 初始化(新设备接入可以跳过这一步,直接查看2.2)

  1. 准备一个私有的 git仓库

  2. cd 到项目文件夹下,执行

fastlane match init

3. fastlane match init之后,在项目的文件目录里面会有一个 Matchfile文件,打开编辑,编辑之后保存。

git_url("https://github.com/fastlane/certificates")// 管理仓库的地址

app_identifier("tools.fastlane.app")//项目的bundleid,如果包含多个target时,你可以使用 app_identifier(["tools.fastlane.app","tools.fastlane.app1"])
username("user@fastlane.tools")
  1. 自动配置
开发环境 *fastlane match* == *fastlane match development*,development是match 默认type,你可以在Matchfile 看到
fastlane match
adhoc环境
fastlane match adhoc
生产环境
fastlane match appstore

2.2 新设备接入

在拉取项目代码后,查看是否包含Matchfile文件。执行对应环境match,在确保git上已经存在证书时,要使用--readonly

  • 开发环境 fastlane match development --readonly
  • adhoc环境 fastlane match adhoc --readonly
  • 生产环境 fastlane match appstore --readonly

2.3 xcode上的处理

关闭xcode自动证书管理,输入项目bundleid,选择对应的描述文件

debug 环境的描述文件,默认 mactch Development 开头
adhoc(forBeta) 环境的描述文件,默认 mactch adhoc 开头
release 环境的描述文件,默认 mactch Appstore 开头

3. 切分支

3.1 如果团队其他成员也具备生成证书的权限,建议切新分支提供给团队其他成员使用时,其他成员只需要match这个分支,避免对master进行修改。

  • 开发环境 fastlane match development --git_branch [新分支名称] --readonly
  • adhoc环境 fastlane match adhoc --git_branch [新分支名称] --readonly
  • 生产环境 fastlane match appstore --git_branch [新分支名称] --readonly

3.2 多个项目

如果团队有多个项目,也建议切新分支,不同分支的管理不同的项目的证书和描述文件

4. 其他

  • 描述文件(profiles)所在目录 open ~/Library/MobileDevice/Provisioning\ Profiles/,你可以在这个目录里删除对应的描述文件

  • 关于企业证书.暂时不建议使用match管理企业证书,因为企业证书的生成和revoke会直接导致线上app能否使用,误操作风险很大。

.