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
Uh oh!
There was an error while loading. Please reload this page.
-
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文件{ "key_id": "xxx", "issuer_id": "xxx", "key_content": "-----BEGIN PRIVATE KEY-----\nxxxxxxx\n-----END PRIVATE KEY-----" }增加
Matchfile配置Android
Android证书比较简单,但是没有提供插件来处理,我的方法是将证书转为base64,在CI过程中把它转完文件写入。
转base64
base64 -i xxx.keystore > key自动化打包
IOS
fastlane ios deploy安装证书到新开发的机器
fastlane certificatesAndroid
fastlane android deploy关于环境变量问题
如果使用了
react-native-config这样的包来管理环境变量,就需要额外的配置了。执行命令
就能够读取
.env.dev这个环境废了老大时间来做这个不属于前端的活路,真是累死我了,简单做个笔记,再也不想整这个了。
Beta Was this translation helpful? Give feedback.
All reactions