美文网首页
(Android)react-native的签名打包

(Android)react-native的签名打包

作者: 淡望江湖路 | 来源:发表于2017-10-18 12:02 被阅读0次

本人刚刚接触RN,将自己遇到的问题做个分享,仅供参考!

1、生成一个签名密钥

keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize2048-validity10000

my-release-key.keystore:文件名

my-key-alias:别名

这两块可以修改为自己的名字。

2、在项目根目录下找到路径/android/app/src/main,并在该目录下新建assets文件夹

3.在工程目录下将index.android.bundle下载并保存到assets资源文件夹中

方法:curl -k "http://localhost:8081/index.android.bundle" > android/app/src/main/assets/index.android.bundle

curl可以百度下载,将curl.exe文件复制在项目的根目录下即可。

提示1: gradle的版本要和项目的版本一样

gradle版本查看:gradle -v

项目的gradle版本查看,是打开\android\gradle\wrapper\gradle-wrapper.properties

例如:distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip则版本就是2.14.1

4.添加gradle的android keystore配置

在项目根目录\android\app\build.gradle文件中添加如下:

//签名

signingConfigs{

release {

storeFile file("/my-release-key.keystore")

storePassword "密码"

keyAlias "keyAlias的名字"

keyPassword "密码"

}

}

buildTypes {

release {

minifyEnabled false

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

signingConfig signingConfigs.release //添加这句话引用签名配置

}

}

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

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

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

def enableProguardInReleaseBuilds = true

6.在/android/目录中执行gradle assembleRelease命令,打包后的文件在 android/app/build/outputs/apk目录中,例如app-release.apk。如果打包碰到问题可以先执行 gradle clean 清理一下。

安装gradle工具(版本与android\gradle\wrapper下的一致),并配置环境变量,配置GRADLE_HOME到你的gradle根目录当中,然后把%GRADLE_HOME%/bin(linux或mac的是$GRADLE_HOME/bin)加到PATH的环境变量。

配置完成之后,运行gradle -v,检查一下是否安装无误

7.将apk发布到各大应用市场(BUILD SUCCESSFUL)

下面说一下我遇到的问题:

由于项目中引入了百度地图,实时导航...等,当执行第5步代码混淆的时候会导致app运行错误。

解决方案:

def enableProguardInReleaseBuilds = false

相关文章

网友评论

      本文标题:(Android)react-native的签名打包

      本文链接:https://www.haomeiwen.com/subject/ccisuxtx.html