生成keystore密钥
keytool -genkey -v -keystore my-test.keystore -alias androiddebugkey -keyalg RSA -keysize 2048 -validity 10000
输入密钥口令,然后确认口令,接下来输入必要的信息,会生成一个keystore文件,这个文件就在命令执行的路径
设置gradle的环境变量
1、把keystore文件放到你工程中的android/app文件夹下(app/assert/my-test.keystore)
2、编辑gradle.properties(没有这个文件你就创建一个,这个是android工程目录下),添加如下的代码(注意把其中的****替换为相应密码)
3、配置gradle环境变量
打开项目里面gradle-wrapper.properties,查看使用的版本
在Androidstudio设置中找到gradle的缓存路径,然后打开wrapper/dists
打开环境变量设置,在系统变量增加GRADLE_HOME,路径为:C:\Users\Administrator\.gradle\wrapper\dists\gradle-6.5-all\2oz4ud9k3tuxjg84bbf55q0tn\gradle-6.5
在系统变量的path增加%GRADLE_HOME%\bin,完成环境变量设置,打开cmd输入gradle,验证gradle配置是否正确,出现以下界面表示gradle配置正确
4、配置app的build.gradle,设置如下
signingConfigs在android下
release在buildTypes下
5、执行以下命令:
yarn install 下载react-native依赖的node_modules,如果执行该命令出现error Couldn't find the binary git,那么删除yarn.lock和yarn-error.log,执行yarn cache clean,然后再执行yarn install即可
react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle
该命令会重新编译android/app/src/main/assets/index.android.bundle文件文件,同时会把JS代码打包到本地,如果没有执行该命令,那么可能修改的js代码没有打包进apk
6、通过gradlew assembleRelease命令(需要从工程目录进入到android目录下执行该命令)进行apk打包,第一次打包时间会很长,打包之后的apk路径在app\build\outputs\apk目录下
7、如果要直接运行到调试机器上,在工程目录执行react-native run-android就可以运行android apk到设备上进行调试,执行react-native run-android命令调试时,设备上的app需要依赖PC端的服务才能正常运行,所以将debug包下的app单独拿出来安装的时候会发现页面缺少资源的情况
备注:为了避免文件操作的权限问题,可以以管理员身份打开cmd窗口,然后在cmd窗口cd到工程目录下,再执行打包apk的命令。
如果执行gradlew assembleRelease命令出现错误,可以先cd到android目录执行gradle clean,该命令会删除build文件夹,然后再执行gradlew assembleRelease
gradle assemble全量打包命令,配置的debug和release都会打包出来,assembleDebug打包出来的是debug的版本,gradlew assembleRelease打包出来的是release版本