Skip to content

React Native安卓端生成发布版apk

  1. 生成秘钥签名
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=*****
  1. 添加签名到项目的 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 命令行下则需要去掉./。

image-20240405172746287

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

注意:修改前端请求路径的配置

image-20240405162851889