ReactNative初学3--Android打包APK

reactnative 打包:

1、生成一个签名密钥:

在 Windows 上keytool命令放在 JDK 的 bin 目录中

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

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

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

C:\Users\G0149>echo %java_home%
D:\application_lg\Java\jdk1.8.0_111

C:\Users\G0149>d:

D:\>cd D:\application_lg\Java\jdk1.8.0_111\bin

D:\application_lg\Java\jdk1.8.0_111\bin>keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
输入密钥库口令:123456
再次输入新口令:123456
您的名字与姓氏是什么?
  [Unknown]:  lg
您的组织单位名称是什么?
  [Unknown]:
您的组织名称是什么?
  [Unknown]:
您所在的城市或区域名称是什么?
  [Unknown]:
您所在的省/市/自治区名称是什么?
  [Unknown]:
该单位的双字母国家/地区代码是什么?
  [Unknown]:
CN=lg, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown是否正确?
  [否]:  y   【注】Linux下为yes

正在为以下对象生成 2,048 位RSA密钥对和自签名证书 (SHA256withRSA) (有效期为 10,000 天):
         CN=lg, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown
输入 <my-key-alias> 的密钥口令             //此处可以直接回车
        (如果和密钥库口令相同, 按回车):
[正在存储my-release-key.keystore]

将my-release-key.keysore存储在当前目录中

2、设置 gradle 变量

把my-release-key.keystore文件放到你工程中的android/app文件夹下。
编辑~/.gradle/gradle.properties(全局配置,对所有项目有效)或
    是项目目录/android/gradle.properties(项目配置,只对所在项目有效)。
    如果没有gradle.properties文件你就自己创建一个,
    添加如下的代码(注意把其中的****替换为相应密码)
注意:~符号表示用户目录,比如 windows 上可能是C:\Users\用户名,而 mac 上可能是/Users/用户名。

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

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

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

【注】signingConfigs需要新建,buildTypes需要添加一行

...
android {
    ...
    defaultConfig { ... }
    signingConfigs {
        release {
            if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) {
                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 包

D:\Android\GitApp\one\android>gradlew assembleRelease
D:\Android\GitApp\one\android>gradlew assembleRelease 【注】linux下 ./gradlew assembleRelease 

生成的 APK 文件位于android/app/build/outputs/apk/app-release.apk

5、测试应用的发行版本

$ react-native run-android --variant=release

猜你喜欢

转载自blog.csdn.net/qq_34819372/article/details/82427463