react native android使用命令生成打包签名密钥

一、概述
Android 要求所有应用都有一个数字签名才会被允许安装在用户手机上,所以在把应用发布到应用市场之前,你需要先生成一个签名的 AAB 或 APK 包(Google Play 现在要求 AAB 格式,而国内的应用市场目前仅支持 APK 格式。但无论哪种格式,签名步骤是一样的)

二、生成一个签名密钥

在项目的 /android 目录下执行这个命令,生成的my-release-key.keystore要放在/android/app 目录下

// 生成密钥命令
keytool -genkeypair -v -storetype PKCS12 -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000


// 浅浅解析一下
keytool:这是一个用于管理 Java 密钥和证书的命令行工具。

-genkeypair:这个选项指示 keytool 生成一个密钥对,即公钥和私钥。

-v:这个选项表示在生成密钥对时显示详细的输出信息。

-storetype PKCS12:这个选项指定了密钥库的类型为 PKCS12,这是一种常见的密钥库格式。

-keystore my-release-key.keystore:这个选项指定了要创建的密钥库文件的名称,即 my-release-key.keystore。

-alias my-key-alias:这个选项指定了密钥对的别名,即 my-key-alias。

-keyalg RSA:这个选项指定了要使用的密钥算法,这里是 RSA。

-keysize 2048:这个选项指定了生成的密钥的长度,这里是 2048 位。

-validity 10000:这个选项指定了生成的密钥对的有效期,即密钥对的证书有效期为 10000 天。

三、在 /app/build.gradle 中配置密钥

1、直接引入:

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

        debug {
            storeFile file('debug.keystore')
            storePassword 'android'
            keyAlias 'androiddebugkey'
            keyPassword 'android'
        }
    }
    buildTypes {
        debug {
            signingConfig signingConfigs.debug
        }
        release {
            // Caution! In production, you need to generate your own keystore file.
            // see https://reactnative.dev/docs/signed-apk-android.
            signingConfig signingConfigs.release
            minifyEnabled enableProguardInReleaseBuilds
            proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
        }
    }

在这里插入图片描述

2、在/android/gradle.properties中设置 gradle 变量

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
// 换上对应的变量名
release {
           storeFile file(MYAPP_RELEASE_STORE_FILE)
           storePassword MYAPP_RELEASE_STORE_PASSWORD
           keyAlias MYAPP_RELEASE_KEY_ALIAS
           keyPassword MYAPP_RELEASE_KEY_PASSWORD
        }

四、查看密钥信息

查看密钥信息,在 /android 目录下执行一下命令

./gradlew signingReport

在这里插入图片描述