fastlane match - Passphrase for Match storage - forget

声明:作者声明此文章为原创,未经作者同意,请勿转载,若转载,务必注明本站出处,本平台保留追究侵权法律责任的权利。
全栈老韩
全栈工程师,擅长iOS App开发、前端(vue、react、nuxt、小程序&Taro)开发、Flutter、React Native、后端(midwayjs、golang、express、koa)开发、docker容器、seo优化等。

一、背景

使用fastlane来管理iOS的证书时,有时候由于人事交接不完全,或者首次生成证书的那个电脑由于某种原因丢失fastlane match密码。造成在使用fastlane来打包时,需要输入密码,否则打包进行不下去。

二、问题

Passphrase for Match storage:******
Type passphrase again:****
Couldn't decrypt the repo, please make sure you enter the right password!

三、问题截图

四、问题分析:

1.fastlane管理证书流程:

  • 需要使用公司的一个gitlab或者github仓库来存储证书,在iOS工程的fastlane文件夹下的Matchfile文件中进行配置。

  • 在fastlane文件夹下的Appfile中配置bundle id、Apple账号等

  1. fastlane match时会将初次设置的密码存在钥匙串中。

  2. fastlane match --help命令可以查看fastlane match后面的指令参数。其中有一个change_password的指令,表示可以更改加密证书的密码。

  3. 如果清空证书git仓库中的证书,是可以重新执行fastlane match来设置加密/解密证书的密码的。

  4. 如果Apple证书中心上的发布证书已经有2个,或者开发证书已经有4个(针对同一个bundle id),那么fastlane去生成证书时就会报错,表示证书已经达到创建上限,无法由fastlane再次生成。

五、解决办法:

解决密码问题的方法在于2种:
第一,就是按照2中的步骤,去钥匙串中查找match开头的那个密码,尝试输入,测试是否可以解决。
第二,要么就是需要清空证书git仓库下的所有证书(要删除Apple证书中心无用的一些证书,让fastlane可以创建新证书,否则数量超发,新建不了)。然后在iOS工程的fastlane文件夹所在的目录下,重新执行fastlane match (development、distribution),等待fastlane通过Apple API去Apple证书中心生成新证书和profile文件,等在Apple证书中心生成新证书后,会自动下载到本地并安装到钥匙串中。

删除Apple证书中心的证书的命令:

fastlane match nuke (develop、distribution)

可以用来删除证书和profile,执行这个命令时,会让你选择删除哪些证书。

暂无评论,快来发表第一条评论吧