背景

为了支持CI持续集成,让Argo能够实现自动构建;同时避免证书混乱,实现自动管理。

整体方案

  • 工具:fastlane + match
  • 证书:公钥和私钥都有match统一管理,统一分发。
  • 开发状态下(development),团队所有成员使用XCode的automatically manage signing自动管理certificates和provisioning profile。
  • 持续集成状态下(appstore & testflight),由match管理。

match实现原理

match使用的是一个私有的git管理所有certificates和provisioning file。私有的git保存的说有内容都是通过OpenSSL加密的,密码不能外泄。

团队成员需要做的

  • Step1:升级系统ruby版本到2.3.0以上,或者通过rbenv安装,以下以rbenv为例,假设本地shell是bash(如果使用的是zsh,则将下文的~/.bashrc 换成 ~/.zshrc:
$ brew install rbenv ruby-build
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(rbenv init -)"' >> ~/.bashrc
$ souce ~/.bash_profile      
$ rbenv install 2.5.0  
$ rbenv rehash     
$ rbenv global 2.5.0

(本步骤完成之后不要切换终端,直到下一次重新登陆;如果切换了,需要执行 source ~/.bashrc)

  • Step2:安装fastlane并确保fastlane权限
$ sudo gem install fastlane -NV
$ fastlane fastlane-credentials add --username natian1229@126.com`
  • Step3:进入ait_ios目录并安装bundler
$ gem install bundler
$ bundle install
  • Step5:进入ait_ios目录并使用match同步证书
$ bundle exec fastlane match development --readonly
$ bundle exec fastlane match appstore --readonly

同步证书的时候需要需要用到一个非常重要的密码,这个密码是对私有git保存的cert和profile的加密

  • Step5:XCode中添加统一的苹果开发者账号xxxx@xxx.com并设置为automatically manage signing。

参考