fastlane自动化打包React Native笔记 #124
zhangyu1818
announced in
zh-cn
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
fastlane
fastlane
是使用Ruby
写的一套自动化打包IOS和Android应用的工具,提供了很多插件化操作,包括证书管理,上传商店。由于它只是一套自动化打包工具,所以想要部署还是需要使用Github Actions这种CI平台的。
需要提前需要安装好
ruby
环境,macOS自带ruby
,如果没有,可以使用rbenv来管理。安装fastlane
setup
安装
初始化fastlane
项目根目录执行
项目下会创建
fastlane
文件夹和Gemfile
文件Appfile
是存一些fastlane的变量文件,不过我没有使用这个文件,大部分的值是通过环境变量来拿的。Fastfile
则是主要的执行文件了,里面定一些所谓lane
的执行命令。证书管理
证书管理这一块浪费了我很多时间,可算整好了。
IOS
IOS的证书一直都很麻烦,分为
development
和上架需要的distribution
证书。使用fastlane的match就可以很轻松的管理证书,甚至开发人员根本不需要登陆Xcode
的开发者账号,如果有新成员执行一下命令就能安好证书了。match
可以将证书存放在一个私有的git仓库中,然后开发者只需要执行命令,就可以将证书安装到本地了,这样共用同一个证书,避免申请多个证书。同时它推荐创建一个新的开发者账号作为公用账号,并申请一个App Store Connect API。
首先使用新的开发者账号来配置
match
,输入一个私有的git仓库地址用来存放证书。现在会增加一个
Matchfile
在fastlane文件夹,里面则是match的配置。如果你想将证书放在不同的分支,可以在
Matchfile
文件中加上你自定义的分支名称还需要申请一个Github Token,用于后续的仓库访问。
将Token转为base64。
写入
Matchfile
文件将
app identifier
写入Matchfile
,如果有多个,可以写为一个数组。app_identifier("com.xxx.xxx")
如果想要撤销掉之前发放的所有证书,可以执行
创建新证书
执行过程中会输入Apple ID,同时会设定一个访问密码。
速度会有一些慢,建议代理加速,执行完后看Github仓库里会有对应的证书文件。
增加
Matchfile
的配置之前有说申请一个App Store Connect API,现在将它配置上。
fastlane目录下创建一个
api-key.json
文件增加
Matchfile
配置Android
Android证书比较简单,但是没有提供插件来处理,我的方法是将证书转为base64,在CI过程中把它转完文件写入。
转base64
base64 -i xxx.keystore > key
自动化打包
IOS
fastlane ios deploy
安装证书到新开发的机器
fastlane certificates
Android
fastlane android deploy
关于环境变量问题
如果使用了
react-native-config
这样的包来管理环境变量,就需要额外的配置了。执行命令
就能够读取
.env.dev
这个环境废了老大时间来做这个不属于前端的活路,真是累死我了,简单做个笔记,再也不想整这个了。
Beta Was this translation helpful? Give feedback.
All reactions