React Native 打包APK(Windows)

1、生成一个签名秘钥:

  在Windows上直接使用Java_JDk自带的keytool工具生成密钥,工具放在JDK的bin目录中(比如C:\Program Files(x86)\Java\jdkx.x.x_x\bin 如下图所示:


接下来使用keytool命令生成:

keytool -genkey -v -keystore my-test1-key.keystore -alias my-key-test1 -keyalg RSA -keysize 2048 -validity 10000


这条命令会要求你输入密钥库(keystore)和对应密钥的密码,然后设置一些发行相关的信息。最后它会生成一个叫做my-test1-key.keystore的密钥库文件。

在运行上面这条语句之后,密钥库里应该已经生成了一个单独的密钥,有效期为10000天。--alias参数后面的别名是你将来为应用签名时所需要用到的,所以记得记录这个别名。

你就可以在 C:\Users\Administrator文件下找到一个叫做my-test1-key.keystore的密钥库文件,如果没有的话,在C:\Program Files(x86)\Java\jdkx.x.x_x\bin找一下!

注意:请记得妥善地保管好你的密钥库文件,不要上传到版本库或者其它的地方。如果提示不是内部命令的话,请检查一下Java的环境配置问题!

2、设置gradle变量

  1. my-test1-key.keystore文件放到你工程中的android/app文件夹下。
  2. 编辑~/.gradle/gradle.properties(没有这个文件你就创建一个),添加如下的代码(注意把其中的****替换为相应密码)

如下图:

    

MYAPP_RELEASE_STORE_FILE=my-test1-key.keystore
MYAPP_RELEASE_KEY_ALIAS=my-key-test1
MYAPP_RELEASE_STORE_PASSWORD=*****
MYAPP_RELEASE_KEY_PASSWORD=*****

3、添加签名到项目的gradle配置文件

编辑你项目目录下的android/app/build.gradle,添加如下的签名配置:

android {
    ......
    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 {
            minifyEnabled enableProguardInReleaseBuilds
            proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
            signingConfig signingConfigs.release
        }
    }
   ......
}

4、生成发行APK包

在打包之前记得在打包规则中添加:
# react native
-dontwarn java.nio.file.Files
-dontwarn java.nio.file.Path
-dontwarn java.nio.file.OpenOption
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement

-keep class com.google.android.gms.** { *; }
-dontwarn com.google.android.gms.**
-dontwarn butterknife.**

只需在终端中运行以下命令:

gradlew assembleRelease



如上图所以,打包成功~生成的APK文件位于android/app/build/outputs/apk/app-release.apk,它已经可以用来发布了。

### 使用 React Native 构建 Android APK #### 准备工作 为了功创建一个可发布的 APK 文件,开发者需准备签名密钥。此过程涉及生用于签署应用程序的 keystore 文件[^4]。 #### 配置环境变量 确保已设置好 `JAVA_HOME` 和 `ANDROID_HOME` 环境变量指向 JDK 及 SDK 安装目录。这一步骤对于命令行工具识别 Java 编译器和 Android 工具链至关重要。 #### 创建并配置 Keystore 通过 keytool 命令来生一个新的 keystore 文件,并将其放置于项目的 android/app 目录内。该操作可以通过如下指令完: ```bash keytool -genkeypair -v -keystore my-upload-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000 ``` 接着,在 `android/app/build.gradle` 中加入以下代码片段以便读取上述生的 keystore 设置: ```gradle android { ... defaultConfig { ... } signingConfigs { release { storeFile file('my-upload-key.keystore') storePassword 'your_store_password' keyAlias 'my-key-alias' keyPassword 'your_key_password' } } buildTypes { release { ... signingConfig signingConfigs.release } } } ``` #### 修改 Gradle 属性文件 编辑 `~/.gradle/gradle.properties` 或者项目根目录下的同名文件,添加下面两行定义以保护敏感信息不被暴露在外: ```properties MYAPP_UPLOAD_STORE_FILE=my-alias MYAPP_UPLOAD_STORE_PASSWORD=your_store_password MYAPP_UPLOAD_KEY_PASSWORD=your_key_password ``` 随后更新 `android/app/build.gradle` 来引用这些属性值: ```gradle signingConfigs { release { if (project.hasProperty('MYAPP_UPLOAD_STORE_FILE')) { storeFile file(MYAPP_UPLOAD_STORE_FILE) storePassword MYAPP_UPLOAD_STORE_PASSWORD keyAlias MYAPP_UPLOAD_KEY_ALIAS keyPassword MYAPP_UPLOAD_KEY_PASSWORD } } } ``` #### 清理与构建 运行清理任务移除旧版编译产物后再尝试重新打包应用: ```bash cd android && ./gradlew clean ``` 之后执行实际的打包流程: ```bash ./gradlew assembleRelease ``` 最终生的应用程序包将会存放在指定位置 `android/app/build/outputs/apk/release/app-release.apk` [^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值