美文网首页
fastlane match 运用在现有的证书环境下

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

作者: nodrift | 来源:发表于2018-07-11 20:13 被阅读0次

    学习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正常流程下的文件截图 创建文件夹。


    certs 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_team
    
    Spaceship.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 match 运用在现有的证书环境下

          本文链接:https://www.haomeiwen.com/subject/aeicpftx.html