React Native安卓端生成发布版apk
- 生成秘钥签名
crystal
$ keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
这里的第一个 SuperBigLw 就是文件的名字,第二个是别名。
10000 是有效时间,2048 是 RSA 加密的大小
按提示输入信息用户密码等等。
放在 android 的 app 目录下面即可!
2.设置 gradle 变量
把 my-release-key.keystore 文件 放到你工程中的 android/app 文件夹下。
编辑 android/gradle.properties(没有这个文件你就创建一个),添加如下的代码(注意把其中的替换为相应密码)
bash
MYAPP_RELEASE_STORE_FILE=my-release-key.keystore
MYAPP_RELEASE_KEY_ALIAS=my-key-alias
MYAPP_RELEASE_STORE_PASSWORD=*****(我们的密码都是123456)
MYAPP_RELEASE_KEY_PASSWORD=*****
- 添加签名到项目的 gradle 配置文件
android/app/build.gradle:
json
...
android {
...
defaultConfig { ... }
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
}
}
}
...
注意:本质上还需要添加:aaptOptions.cruncherEnabled = false aaptOptions.useNewCruncher = false
bash
android {
compileSdkVersion 30
buildToolsVersion '30.0.3'
defaultConfig {
applicationId "xxxx"
minSdkVersion 21
targetSdkVersion 30
//解决Execution failed for task ':app:mergeReleaseResources'.
aaptOptions.cruncherEnabled = false
aaptOptions.useNewCruncher = false
}
}
4.生成发行 APK 包
bash
cd android && ./gradlew clean #注意:可以先清除构建缓存,但是好像没有什么必要
./gradlew assembleRelease
cd android 表示进入 android 目录(如果你已经在 android 目录中了那就不用输入了)。./gradlew assembleRelease 在 macOS 和 Linux 系统中表示执行当前目录下的名为 gradlew 的脚本文件,运行参数为 assembleRelease,注意这个./不可省略;而在 windows 命令行下则需要去掉./。

注意:但是这里生成 apk 的方法其实是有问题的!只有第一次生成的可以,后面改了代码再生成的代码不会变,还是旧的效果,需要看生成 index.android.bundle 文件那个文章!!!
注意:修改前端请求路径的配置