React Native使用Fastlane自动打包apk和ipa

在另外两篇文章中分别写了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指令,则表示猜想正确。

  1. scripts中添加cd指令;
"scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "test": "jest",
    "cd": "cd ../"
  },
  1. 终端切换到RN项目根目录,执行npm run cd,成功跳转到了父目录中,窃喜,猜想正确。

那么使用一个package指令打包apk&ipa如何?

具体步骤:

  1. cd到【android】目录下,执行bundle exec fastlane beta完成apk打包工作;
  2. cd到【ios】目录下,执行bundle exec fastlane beta完成ipa打包工作;
  3. 把上面两个步骤糅合起来,变成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中配置即可。

你可能感兴趣的:(React Native使用Fastlane自动打包apk和ipa)