Appearance

React Native打包apk超详细步骤

根据自己的配置过程,记录一下

生成一个签名密钥

Windows机器先进入JDK 的 bin 目录下(比如C:\Program Files\Java\jdkx.x.x_x\bin),才能执行keytool命令。 mac不需要,直接执行命令即可。

//用keytool命令生成一个私有密钥,my-release-key.keystore的密钥库文件 
//keytool -genkeypair -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 20000
$ keytool 
    -genkeypair -v 
    -keystore my-release-key.keystore 
    -alias my-key-alias //alias 参数后面的别名,将来为应用签名时需要用到的
    -keyalg RSA 
    -keysize 2048 
    -validity 20000  //-validity 20000 有效期20000天  
//设置密钥库口令,设置密钥库密码为123456,另一个密码提示时默认设为跟密钥库密码一样(可自己选择)

执行命令后,会发现生成了一个文件:my-release-key.keystore,这就是apk的签名密钥。

设置 gradle 变量

  • 把my-release-key.keystore文件放到你工程中的android/app文件夹下。
  • 编辑 /.gradle/gradle.properties 或是 项目目录/android/gradle.properties文件。

说明:编辑 /.gradle/gradle.properties,修改的是全局配置,对所有项目有效。 /android/gradle.properties(项目配置,只对所在项目有效) 如果没有gradle.properties文件你就自己创建一个,添加如下的代码,分别为签名、别名、密钥库密码、密码

MYAPP_RELEASE_STORE_FILE = my-release-key.keystore 
MYAPP_RELEASE_KEY_ALIAS = my-key-alias 
MYAPP_RELEASE_STORE_PASSWORD = 123456 
MYAPP_RELEASE_KEY_PASSWORD = 123456

把签名配置加入到项目的 gradle 配置中

...
android {
    ...
    defaultConfig { ... }
    signingConfigs {
        release {
          storeFile file("my-release-key.keystore")
          storePassword "123456"
          keyAlias "my-key-alias"
          keyPassword "123456"
        }
    }
    buildTypes {
        release {
            ...
            signingConfig signingConfigs.release
        }
    }
}
...

生成发行 APK 包

cd android 
 
/gradlew assembleReleas

生成的 APK 文件位于android/app/build/outputs/apk/release/app-release.apk,它已经可以用来发布了