关于fastlane证书复用问题

最近使用fastlane,每当新建一个project/target的时候,当执行 match development/adhoc/appstore时候,不同的bundle id对应的target,每次都会去重新生成certificate,注意不是Provision Profile,这就很麻烦了,因为苹果的个人开发者账号,certificate生成是有数量限制的。 development和 distribution证书类型貌似都是只能生成2个。所以如果按照fastlane那种做法的话,我们只能给两个app装到真机里面玩玩。这就怕不能愉快的玩下去了,所以我们就得考虑如何复用已存在certificate,下面就是介绍如何复用。

合并已有证书到fastlane match

首先一个很重要的概念就是cert id, 拿到已有证书的cert id并告诉fastlane, fastlane知道了就不会去重新生成certificate,只会去生成Progision Porfile

下面一段ruby代码就是获取cert id:

require 'spaceship'

Spaceship.login('your@apple.id')
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

执行上述代码,会输出相应的证书信息,如果该账号下有多个certificat,会全部输出,包括developmentdistribution

保持好你需要的复用的证书cert id

创建一个远程git仓库,保存你的certificatesprovisioning profiles
  • iOS/macOS证书的工作主要就是围绕certificatesprovisioning profiles这两个文件进行的。
  • 仓库目录下创建certs/distribution和 certs/development目录,分别存放生成和开发环境下的相关证书文件
生成符合fastlane match的证书
  • 钥匙串中导出已有证书的certificate.cercertificate.p12文件

  • run openssl pkcs12 -nocerts -nodes -out key.pem -in certificate.p12.
    It will extract the private key to a key.pem file.

  • encrypt the files with

    openssl aes-256-cbc -k your_password -in key.pem -out cert_id.p12 -a
    openssl aes-256-cbc -k your_password -in certificate.cer -out cert_id.cer -a
    

执行完上述步骤后,就生成了fastlane match想要的certificate,当执行match development/adhoc/appstore命令后,match就不会去Apple Development Center重新生成certificate了,而是拿现有的了,然后分别丢进对应git仓库目录中,提交、推送到远程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值