React Native之学习篇五

生成签名密钥

您可以使用keytool生成私人签名密钥。 在Windows上,keytool必须从C:\ Program Files \ Java \ jdkx.x.x_x \ bin运行。

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

此命令会提示您输入密钥库和密钥的密码,并为密钥提供专有名称字段。 然后它生成密钥库作为名为my-release-key.keystore的文件。

密钥库包含一个密钥,有效期为10000天。 别名是您在签名应用程序时稍后使用的名称,因此请记住注意别名。

注意:请记住保持密钥库文件的私密性,不要将其提交给版本控制。

设置gradle变量

1.将my-release-key.keystore文件放置在项目文件夹的android / app目录下。
2.编辑文件〜/ .gradle / gradle.properties或android / gradle.properties并添加以下内容(将*****替换为正确的密钥库密码,别名和密钥密码)

MYAPP_RELEASE_STORE_FILE=my-release-key.keystore

MYAPP_RELEASE_KEY_ALIAS=my-key-alias

MYAPP_RELEASE_STORE_PASSWORD=*****

MYAPP_RELEASE_KEY_PASSWORD=*****

这些将成为全局的gradle变量,我们稍后可以在我们的gradle配置中使用它来签署我们的应用程序。

有关保存密钥库的注意事项:

在Play商店中发布应用程序后,如果您想在任何时候更改签名密钥,则需要使用不同的软件包名称(丢失所有下载和评级)重新发布您的应用程序。 所以备份你的密钥库,不要忘记密码。

关于安全性的注意事项:

如果您不想以明文形式存储密码,并且您正在运行OSX,则还可以将您的凭据存储在Keychain Access应用程序中。 然后你可以跳过〜/ .gradle / gradle.properties中的最后两行。

将签名配置添加到您的应用程序的gradle配置

编辑你的项目文件夹中的文件android / app / build.gradle并添加签名配置

...

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

        }

    }

}

...

生成发布的APK

只需在终端中运行以下命令:

$ cd android && ./gradlew assembleRelease

Gradle的assembleRelease将捆绑运行你的应用程序所需的所有JavaScript到APK中。 如果您需要更改捆绑JavaScript和/或可绘制资源的方式(例如,如果更改了默认文件/文件夹名称或项目的一般结构),请查看android / app / build.gradle以查看 如何更新它以反映这些变化。

生成的APK可以在android / app / build / outputs / apk / app-release.apk下找到,并准备好分发。

测试你的应用程序的发布版本

在将发布版本上传到Play商店之前,请确保对其进行彻底测试。 首先卸载您已经安装的应用程序的任何以前的版本。 使用以下方法将其安装在设备上:
$ react-native run-android --variant=release

请注意,--variant = release仅在您按上述方式设置了签名时才可用。

您可以杀死任何正在运行的包装器实例,所有的框架和JavaScript代码都捆绑在APK的资源中。

由ABI拆分APK以减小文件大小

默认情况下,生成的APK具有x86和ARMv7a CPU体系结构的本机代码。 这样可以更轻松地共享几乎所有Android设备上运行的APK。 然而,这样做的缺点是在任何设备上都会有一些未使用的本地代码,从而导致不必要的更大的APK。

您可以通过在android / app / build.gradle中更改以下行来为每个CPU创建一个APK:

- def enableSeparateBuildPerCPUArchitecture = false

+ def enableSeparateBuildPerCPUArchitecture = true

将这两个文件上传到支持设备定位的市场,例如Google Play和Amazon AppStore,用户将自动获得相应的APK。 如果您想上传到APKFiles等不支持单个应用的多个APK的市场,请更改以下行,以便为两个CPU创建具有二进制文件的默认通用APK。

- universalApk false  // If true, also generate a universal APK

+ universalApk true  // If true, also generate a universal APK

启用Proguard以缩小APK的大小(可选)

Proguard是一个可以稍微减小APK的大小的工具。 它通过剥离您的应用程序未使用的React Native Java字节码(及其依赖项)的一部分来实现此目的。

重要提示:如果您启用了Proguard,请确保彻底测试您的应用程序。 Proguard通常需要针对您正在使用的每个本地库的配置。 请参阅应用程序/ proguard-rules.pro。

要启用Proguard,请编辑android / app / build.gradle:

/**

 * Run Proguard to shrink the Java bytecode in release builds.

 */

def enableProguardInReleaseBuilds = true

转载于:https://my.oschina.net/todaybamboo/blog/1608731

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值