为 React Native App 创建签名的 APK/ABB 文件
在本文中,您将学习如何为 React Native 应用程序创建 APK 或 Android App Bundle (ABB) 文件。您的应用程序应使用上传密钥进行数字签名,以使您的 Android 应用程序在 Google Play 商店上发布。
在终端/cmd 中生成私有签名密钥:您可以使用 keytool 生成私有签名密钥。确保 keytool 必须从 C:\Program Files\ Java\jdkx.x.x_x\bin 运行
在终端/命令行中打开您的项目位置,如下图所示。
输入此命令以生成 Keystore 文件(不适用于 macOS 用户):
keytool -genkeypair -v -storetype PKCS12 -keystore my-upload-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
此命令将询问 Keystore 密码和一些关于您的基本信息。 (您将输入的密码不会在屏幕上显示)
最后一步,输入“yes”,将生成一个2048位的RSA密钥对和一个有效期为10000天的自签名证书(SHA256withRSA)。这将存储在名为 my-upload-key.keystore 的项目目录中。
输出:
如果您使用的是 macOS,则将 keytool 与 sudo 一起使用:
sudo keytool -genkey -v -keystore my-upload-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
设置 Gradle 变量:
第一步:将my-upload-key.keystore文件移动到项目文件夹的android/app目录下。
第二步:在android/gradle.properties中添加如下几行(将****替换为正确的Keystore密码、别名、key密码)
MYAPP_UPLOAD_STORE_FILE=my-upload-key.keystore
MYAPP_UPLOAD_KEY_ALIAS=my-key-alias
MYAPP_UPLOAD_STORE_PASSWORD=*****
MYAPP_UPLOAD_KEY_PASSWORD=*****
关于安全性的注意事项:如果您不想以明文形式保存密码,您可以将您的凭据存储在 Keychain Access 应用程序中。然后你可以跳过~/.gradle/gradle.properties 中的最后两行。
将签名配置添加到应用的 Gradle 配置
接下来,在项目文件夹的 android\app\build.gradle 下的以下行中添加签名配置:-
...
android {
...
defaultConfig { ... }
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
}
}
}
buildTypes {
release {
...
signingConfig signingConfigs.release
}
}
}
...
完成此步骤后,您可以生成 APK/ABB 文件。
生成APK:
对于 APK 文件生成,在 CMD 中运行以下命令:
cd android
./gradlew assembleRelease
输出:
现在您将收到一条消息BUILD SUCCESSFUL ,然后生成一个 APK 文件!
您可以在 android/app/build/outputs/apk/app-release.apk 找到 APK 文件。
生成 ABB(可选):对于 ABB 文件生成,在 CMD 中运行以下命令:
cd android
./gradlew bundleRelease
输出:
您将收到一条消息,构建成功。
现在生成了 ABB 文件!
您可以在 android/app/build/outputs/bundle/release/app.aab 找到 ABB 文件,该文件可以上传到 Google Play 商店。
测试您的应用的发布版本:要在 Play 商店发布之前测试您的应用,请卸载任何以前版本的应用并使用以下命令进行安装:-
npx react-native run-android --variant=release
可选步骤:启用 Proguard 以压缩 APK 大小。
Proguard 工具用于优化 APK 大小。
编辑 android/app/build.gradle 并搜索“enableProguardInReleaseBuilds”并使其启用 proguard :-
def enableProguardInReleaseBuilds = true