注意
首先React Native开发的APP是无法通过Android Studio进行打包的,因为AS打包的APK,也是和debug版本一样,需要进行依托localhost:8081服务运行。所以我们必须采用官方推荐的打包方式才可以。
打包过程
1.1生成签名证书
1.1.1签名的意义:
签名是应用的唯一ID,也是运用签名信息进行区分的。签名可以保证我们的应用可以正常升级,并且不被别人覆盖(当包名相同时)。
keytool -genkey -keystore test.keystore -alias test -keyalg RSA -validity 10000
参数解释:
-genkey 产生证书文件
-keystore 指定密钥库的.keystore文件中
-keyalg 指定密钥的算法,这里指定为RSA(非对称密钥算法)
-validity 为证书有效天数,这里我们写的是10000天
-alias 产生别名
1.2设置gradle变量
1、将你的签名证书copy到 android/app目录下。
2、编辑../android/gradle.properties,加入如下代码:
MYAPP_RELEASE_STORE_FILE=your keystore filename
MYAPP_RELEASE_KEY_ALIAS=your keystore alias
MYAPP_RELEASE_STORE_PASSWORD={你的密码}
MYAPP_RELEASE_KEY_PASSWORD={你的密码}
3、在gradle配置文件中添加签名配置
编辑 android/app/build.gradle文件添加如下代码:
...
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 //加
}
}
}
4、签名打包APK
terminal进入项目下的android目录,运行如下代码:
./gradlew assembleRelease
签名打包成功后你会在 “android/app/build/outputs/apk/”目录下看到签名成功后的app-release.apk文件。
提示:如果你需要对apk进行混淆打包 编辑android/app/build.gradle:
def enableProguardInReleaseBuilds = true