React Native App设置&Android版发布

React Native系列

《逻辑性最强的React Native环境搭建与调试》 《ReactNative开发工具有这一篇足矣》 《解决React Native unable to load script from assets index.android.bundle on windows》 《React Native App设置&Android版发布》

一、设置APP信息

1.设置包名、版本号

目录:~/android/app/build.gradle

2.设置应用名

目录:~/android/app/src/main/res/values/strings.xml

3.设置图标

在~/android/app/src/main/res/下,你会看到一系列mipmap开头的文件夹(默认是4个),按照里面ic_launcher.png的尺寸,生成四个版本的icon并替换。

有时候图标修改会迟迟不生效,此时从手机上彻底删掉原应用,删掉文件夹android/build和android/app/build,然后再重新打包。如图:

二、打包发布android应用

1.生成签名秘钥

在Windows上keytool命令放在JDK的bin目录中(比如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天,执行界面如图:

2.设置gradle变量

①.把my-release-key.keystore文件放到你工程中的~/android/app文件夹下。

②.编辑~/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=*****

如图:

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.发行应用

执行命令: 

cd android && gradlew assembleRelease

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

5.启用Proguard代码混淆来缩小APK文件的大小(可选)

进入目录~/android/app/build.gradle,设置minifyEnabled选项为true:

def enableProguardInReleaseBuilds = true

如图:

Proguard是一个Java字节码混淆压缩工具,它可以移除掉React Native Java(和它的依赖库中)中没有被使用到的部分,最终有效的减少APK的大小。

重要:启用Proguard之后,你必须再次全面地测试你的应用。Proguard有时候需要为你引入的每个原生库做一些额外的配置。参见app/proguard-rules.pro文件。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏向治洪

Mac Jenkins搭建 Android/IOS自动打包环境

如何在mac上利用Jenkins搭建 Android/IOS自动打包环境呢? 设置静态IP 打开”System Preferences…”,设置静态ip。 ...

45810
来自专栏黑泽君的专栏

Win10系统怎样让图片的打开方式为照片查看器?

在Win10系统中有一个最不方便的地方就是图片的打开方式没有照片查看器,如果想恢复传统的照片查看器该怎么操作呢?

1042
来自专栏华仔的技术笔记

Xcode安装插件

36511
来自专栏Android干货

ButterKnife注解框架详解

1773
来自专栏DeveWork

开发者的福音:GenerateWP 自动生成WordPress 开发相关代码

开发 WordPress 主题或插件的时候,有很多比较常用的功能,例如边栏、自定义菜单、自定义文章类型等等,都需要手动书写或者复制,需要大量的时间和精力,但是有...

2925
来自专栏腾讯NEXT学位

使用Sublime Text编辑器 你所不知道的11个秘密

3177
来自专栏破晓之歌

Sublime的插件介绍 转

使用 Ctrl+`调出console面板输入sublime.log_commands(True),可以得到当前使用的命令面板进行设置的值。方便进行快捷键的绑定。

1103
来自专栏DeveWork

幻灯片jQuery插件Orbit 介绍(附添加到WordPress教程)

这年头,几乎常规的网站都有幻灯片;没有反而显得不高档了。今天介绍一个图片滑动幻灯片jQuery 插件,名字叫 Orbit,自定义功能很强大却是轻量级(仅仅4kb...

25010
来自专栏大内老A

SQL Server 2005:一个使用新创建的User的问题和解决方法

昨天在写一个SQLXML的Sample的时候,在SQL Server 2005添加新的User的时候出了一系列的问题,觉得这是一个很Common的问题,今天我把...

1915
来自专栏Objective-C

Xcode8.0 控制台打印输出问题

3797

扫码关注云+社区

领取腾讯云代金券