之前都是在Xcode里手动打包,虽然方便但是有些繁琐,而且还不能起身去喝杯咖啡,吹个牛,哈哈哈。本来是直接想让测试和后端对接下,搭建一套 jikens 持续集成环境,怎奈,后端环境一直没搞好,就搁置了。没办法,那只能客户端自己来搞了,毕竟能自动化点是点(摊手)~

Fastlane相信做移动开发的都不会陌生,非常有名的自动化打包集成工具,和Cocopods一样都是用Ruby开发的,而且Mac自带gem环境(当然,肯定得升级)原生支持ruby,美滋滋。不过gem的sources源得换成国内的,否则安装时会出现超时的情况,即使你有墙外全局代理也建议更换成国内的源镜像。工具的安装就不赘述了,官网有详细的setup步骤,这里说下从写好一个lane,也就是一个任务action到打好包然后上传testflight后台的问题,首先写好lane,我这里因为要做两个事情,一个是打好ipa,第二是自动上传到AppStore Connect的测试后台,命名为”beta”,具体的lane命令如下:

进入项目根目录,执行fastlane beta,开始build,xcode本身编译没问题,这里的编译应该也没什么问题,成功archive出ipa包后,问题出现在「upload_to_testflight」这一步:

目前Apple为了安全,Apple develop account 都需要强制开启两步验证,也为此带来了一些账号操作上的麻烦。这里根据报错提示,意思是需要一个特定的 application 专用密码,刚开始很奇怪,不知道表达的是什么意思,输入了账号登陆密码尝试,一直不通过,后来无奈只能到 Apple id 账号信息里去找相关,在安全选项里确实有这么个东西,手动生成了一个所谓的”专用密码”,然后保存下来,输入命令行,继续执行上传流程,终于一切顺利,大功告成!:

但是,但是,事情还没有结束,当其他同事在提交新功能,准备构建新版测试包时,同样的问题又复现了。what?不是都已经有”专用密码”了嘛,怎么提示不对了?一脸懵圈,没办法,只能让同事在他自己的电脑上重新再生成一遍,然后继续,流程成功执行了下去。
这时候才知道原来”application专用密码”需要每个人在自己的机器环境上各自生成,然后保存,供后续使用,无法只生成一个分发通用,真是一个字:坑!

分享这次上传beta包到后台,遇到的问题,供以后的朋友查阅和借鉴,避免浪费不必要时间和精力。