fastlane 发布相关

这个主要是记录下来备忘,为了方便以后自己查看

fastlane 发布相关_第1张图片
Paste_Image.png

公司项目中用到的是fastlane 持续部署,在对接新的项目的时候会一直出现这个错误。因为这里证书管理用的是fastlane 推荐的match 管理,一开始一直怀疑是match 输入的密码不对,重置密码还是这样,后来决定直接清空之前的证书和match 证书仓库,全部推倒重来,结果让人崩溃的是命令行又给了我们一个不是很满意的异常。后来在组长的帮助下总算是解决掉了,这里记录一下,方便以后遇到这种坑可以很快踩过。

这里有个前提,我们这个团队有好几个项目,所以统一放在了一个gitlab仓库中去管理,在做测试时经常需要打包,之前的老做法就是手机拿过来一个个安装,不过好在之前公司没有测试,也就是自己调试调试或者老板想要看结果,就手动Xcode 打个包发到蒲公英或者fir上就可以。不过如果有测试人员而且还不在一个楼层的时候这样就会有点效率太低了。而fastlane 很好的解决了这个问题,可以做到一键打包发布,好吧,扯得有点远了。在发布到fir 上的时候,每天的下载量只能是10次,所以我们自己搭了一个分发环境,而且环境都配置在一台电脑上,用来做发布机,每次需要打包分发的时候小组成员就需要通过ssh 切换到这台发布机的用户下面才可以有权限分发到我们的服务上。这次的坑其实就出在ssh 上面了。直接在那个发布账户下和我自己本机去操作match 的话都是OK 的,但是通过我的电脑去ssh 到发布账户时就会一直卡在下面的错误那里。最后试了小组之前就用fastlane 的成员的机器试了就是OK,经过种种的谷歌未果,最后组长指出这是权限的问题,因为普通的通过ssh 命令去切换到发布账户下的时候,需要输入该电脑的登录密码。这种登录方式进去的话就没有对keychain的操作权限,只能通过公钥去登录才可以,下面是主要操作:
1.首先是切到发布账户下,通过ssh

fastlane 发布相关_第2张图片
这里就是该账户下

2.在终端输入如下命令

$ vi ~/.ssh/    (这里按tab 就会显示下面的可选列表)
Paste_Image.png

** 3.打开authorized_keys文件**

远程主机将用户的公钥,保存在登录后的用户主目录的$HOME/.ssh/authorized_keys文件中。公钥就是一段字符串,只要把它追加在authorized_keys文件的末尾就行了。

** 4.新建一个窗口,通过如下命令获取自己的公钥**

$ cat .ssh/  (这里也是tab,下面所展示的就是密钥,后缀.pub的是公钥)

![Uploading Paste_Image_886738.png . . .]

Paste_Image.png

5.打开公钥

$ cat .ssh/id_rsa.pub 

fastlane 发布相关_第3张图片
Paste_Image.png

6.将这里的公钥粘贴到第3步打开的authorized_keys文件里,保存退出
7.通过logout命令登录出来,再去使用ssh登录发现不需要输入密码了,而且fastlane也可以正常使用了

$ logout        // 登出
$ ssh [email protected]

参考

SSH原理与运用(一):远程登录
管理部署密钥

match  --force
  • 7.添加新的设备
1, sudo fastlane run register_device name:"test" udid:"000000000000000000000000000000"
2, sudo fastlane match  --force_for_new_devices
   sudo fastlane match development --force_for_new_devices --git_branch longniu 
   sudo fastlane match adhoc --force_for_new_devices --git_branch longniu 
   sudo fastlane match appstore --force_for_new_devices --git_branch longniu


证书管理的时候 如果到了下面这一步:


image.png

如果选择不需要密码的话,每次改变都不会推送到证书的远程仓库。

其他

如何在运行时改变App的图标
iOS使用Fastlane多渠道自动化打包
Automating iOS Certificate and Profile Syncing with Fastlane

你可能感兴趣的:(fastlane 发布相关)