fastlane|fastlane match 运用在现有的证书环境下

学习fastlane match时看到了这一条命令:
删除开发者网站上所有的certificates和provisioning profiles。
fastlane match nuke development
要在全新的环境下使用 就有点麻烦了。
所以这篇文章是针对于现有的证书环境下。
先看下官网的fastlane:https://docs.fastlane.tools/actions/match/
然后针对私有证书库 我们创建个新的空的分支,这个分支是没有父级的分支。因为我们有多个开发者证书,多个项目,因此用分支的形式来存储不属于同一个团队的cert和p12。
cd到私有证书项目目录下

git checkout --orphan [新分支名称] 提示:Switched to a new branch '新分支名称'

现在我们执行下
git branch -a

发现没有看到我们的branch 因为没有东西提交上去。还没有第一次的提交记录 也就不会显示出来
确保是新的空的分支 执行下
git rm -rf .

然后按照fastlane正常流程下的文件截图 创建文件夹。
?

fastlane|fastlane match 运用在现有的证书环境下
文章图片
certs fastlane|fastlane match 运用在现有的证书环境下
文章图片
profiles 然后从开发者网站上下载现有的证书,将证书导入到钥匙中,并导出生成p12文件
从网上搜索的生成加密后的证书的代码: {}里面的是要替换的
openssl pkcs12 -nocerts -nodes -out key.pem -in {证书}.p12 #生成.pem文件

输入加密密码 记住了 后续需要填写密码 验证。
openssl aes-256-cbc -k {密码} -in key.pem -out {Cert id}.p12 -a #生成加密后的p12

openssl aes-256-cbc -k {密码} -in {证书}.cer -out {Cert id}.cer -a #生成加密的证书

Cert id是从下面的方法获取到的
将以下代码复制一下,创建findcert.rb文件替换掉注释部分。
require 'spaceship'Spaceship.login('xxxxxx@xxx.com') #输入对应的苹果账号 Spaceship.select_teamSpaceship.certificate.all.each do |cert| cert_type = Spaceship::Portal::Certificate::CERTIFICATE_TYPE_IDS[cert.type_display_id].to_s.split("::")[-1] puts "Cert id: #{cert.id}, name: #{cert.name}, expires: #{cert.expires.strftime("%Y-%m-%d")}, type: #{cert_type}" end

然后执行ruby findcert.rb 输入苹果账号对应的密码
显示的是
Cert id: XXXXXXX, name: iOS Development, expires: 2019-05-07, type: Development Cert id: YYYYYYY, name: iOS Distribution, expires: 2019-05-07, type: Production ...

我们需要的就是Cert id。
然后把加密后的证书及P12放入git仓库的certs目录对应的类型下面。
git add git commit git push

再执行
*fastlane match development/adhoc/appstore --git_branch [新分支名称] *输入私有库的地址 -> 对应的账号 -> 对应的bundleid(需要提前在开发者网站上的App IDs申请好)

注意:如果中间有出现输入密码的话 就是你本地产生的cert和开发者网站上的证书不匹配,开发者网站上就会产生两个相同的证书,后续就有错误。请重新生成加密证书。
注意:如果成功后 可以执行
git pull origin [新分支名称]

就会看到有个mobileprovision下载到私有库中,说明成功了!
注意:别忘记写 --git_branch 不然会match master分支 就会报错,找不到对应的。
全部做完以后 在其他的安装了fastlane的电脑上
fastlane match --git_branch [新分支名称] --readonly

【fastlane|fastlane match 运用在现有的证书环境下】大功告成,就可以愉快的开发了。

    推荐阅读