在另外两篇文章中分别写了Fastlane自动打包ipa和Fastlane自动打包apk。在React Native中自动打包apk和ipa,按照前两篇文章的打包步骤进行就可以了。
写这篇文章的目的只有一个,如何在RN项目中通过一个命令,完成apk和ipa打包工作。
灵感来源
接触RN的时间不算太久,也是在写配置第三方库的时候,偶然发现了
【package.json】文件中脚本配置信息:
"scripts": {
"start": "node node_modules/react-native/local-cli/cli.js start",
"test": "jest",
"lint": "eslint .",
"flow": "flow"
},
由此想到,平时通过npm start
启动react-native local-cli,可能就是由scripts
下的start
脚本配置实现的。灵感乍现,我是不是也可以在这里自定义一些脚本以实现一些自动化的操作?
在实操中最常用的终端命令无非是切换目录的cd
命令,那么在scripts
能够实现cd
指令,则表示猜想正确。
- 在
scripts
中添加cd
指令;
"scripts": {
"start": "node node_modules/react-native/local-cli/cli.js start",
"test": "jest",
"cd": "cd ../"
},
- 终端切换到RN项目根目录,执行
npm run cd
,成功跳转到了父目录中,窃喜,猜想正确。
那么使用一个package
指令打包apk&ipa如何?
具体步骤:
-
cd
到【android】目录下,执行bundle exec fastlane beta
完成apk打包工作; -
cd
到【ios】目录下,执行bundle exec fastlane beta
完成ipa打包工作; - 把上面两个步骤糅合起来,变成
scripts
下的package
指令:
"scripts": {
"start": "node node_modules/react-native/local-cli/cli.js start",
"test": "jest",
"lint": "eslint .",
"flow": "flow",
"package": "cd ./ios/fastlane && fastlane beta && cd ../../android/fastlane && fastlane beta"
},
在scripts
下有package
指令加持,我们就可以cd
到RN项目根目录,通过执行npm run package
,自动化打包apk和ipa文件了。
扩展
诸如其它自动上传蒲公英、fir.im之类的,在Fastfile中配置即可。
网友评论