因为公司需求,用RN与安卓混合开发,期间在打包这块遇到点问题,所以将步骤记录一下。
一:创建应用签名
创建签名一般有两种方式,一个是通过命令行的方式生成的,另一种就是借助android studio可视化的工具生成的,这里就不仔细说步骤了。
将生成的签名文件放置在android/app的目录底下。
二:创建assets文件夹
接着在react native 的安卓目录底下的app/src/main 目录底下创建一个assets文件夹(注意不要把这个单词写错。。)。
三:生成bundle文件
这一步要做的就是在刚刚创建的assets文件夹下生成一个bundle,首先要去下载一个curl工具,这个主要是实现命令行生成bundle文件的操作,资源在文章尾部给出,当然也可以自行百度下载,接着就是配置curl的环境变量,这个也自行百度。
一切配置完成之后,在这个RN项目的根目录打开命令行,先执行npm start(没有配置node也可以直接执行react_native start这条命令),让服务器开起来,然后再执行这段指令:
curl -k "http://localhost:8081/index.android.bundle" >android/app/src/main/assets/index.android.bundle
正常 情况下显示:
E:\hda\hda>curl -k "http://localhost:8081/index.android.bundle" >android/app/src/main/assets/index.android.bundle
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 3032k 0 3032k 0 0 259k 0 --:--:-- 0:00:11 --:--:-- 680k
即为成功。
四:配置签名信息
在android目录下的gradle.properties添加以下的字段:
MYAPP_RELEASE_STORE_FILE=签名名字 MYAPP_RELEASE_KEY_ALIAS=别名 MYAPP_RELEASE_STORE_PASSWORD=密码 MYAPP_RELEASE_KEY_PASSWORD=密码
然后在app 下的build.gradle下面添加以下节点:
signingConfigs { release { storeFile file(MYAPP_RELEASE_STORE_FILE) storePassword MYAPP_RELEASE_STORE_PASSWORD keyAlias MYAPP_RELEASE_KEY_ALIAS keyPassword MYAPP_RELEASE_KEY_PASSWORD } }
buildTypes { release { ... ... signingConfig signingConfigs.release } }
五:配置gradle环境变量
去下载项目相同的gradle版本的离线包,因为最终的打包命令需要gradle的支持。
这一部分自行去百度配置
六:生成
gradle assembleRelease