ReactNative生成签名APK

ReactNative项目最终要面向市场, 生成签名的Apk应用程序, 并发布到各大市场. 官网已经提供了参考, 非常简单, 现在啰嗦几句.

1. 去掉开发模式

修改主页入口, setUseDeveloperSupport(false), 去掉开发者支持功能.

        mReactInstanceManager = ReactInstanceManager.builder()
                .setApplication(getApplication())
                .setBundleAssetName("index.android.bundle")
                .setJSMainModuleName("index.android")
                .addPackage(new MainReactPackage())
                .setUseDeveloperSupport(false)
                .setInitialLifecycleState(LifecycleState.RESUMED)
                .build();

2. Gradle

Gradle是生成Apk的工具, 配置签名和Proguard.

android {
    ...
    signingConfigs {
        release {
            storeFile file('key/SpringRainKey')
            storePassword 'chunyu'
            keyAlias 'chunyu'
            keyPassword 'chunyu'
        }
    }

    buildTypes {
        release {
            signingConfig signingConfigs.release
            minifyEnabled true  // Set this to true to enable Proguard
            proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"

        }
    }
}

设置签名signingConfigs: 存储文件(storeFile)位置, 存储密码(storePassword), key别名(keyAlias), key密码(keyPassword).

生成Release包模式.

signingConfig signingConfigs.release

启用Proguard.

minifyEnabled true

注意signingConfigs需要在buildTypes后面, 否则找不到方法.

3. Proguard内容

这个官方文档没有提到, 不配置会报错.

java.lang.NoSuchMethodError: no static or non-static method "Lcom/facebook/react/bridge/ReadableNativeArray;.getType(I)Lcom/facebook/react/bridge/ReadableType;"

proguard-rules.pro中, 保留React的所有代码, 添加在最后.

# 禁止混淆react
-keep public class com.facebook.react.** {
  public protected *;
}

4. 执行

android文件夹内执行

./gradlew installRelease
命令

即可生成Release包, 并安装入手机, 最终包的位置.

./android/app/build/outputs/apk/app-release.apk

参考

ReactNative项目开发模式已经很成熟了, 我们可以把开发完的项目, 通过以上方式, 生成最终线上的包进行发布.

OK, Enjoy it!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,896评论 25 708
  • 转载注明出处:http://www.jianshu.com/p/5255b100930e 0. 前言 完全由个人翻...
    王三的猫阿德阅读 2,553评论 0 4
  • 这一章主要针对项目中可以用到的一些实用功能来介绍Android Gradle,比如如何隐藏我们的证书文件,降低风险...
    acc8226阅读 7,672评论 3 25
  • 不管什么作品都很容易喜欢上爹不疼娘不爱的倒霉蛋QAQ好难过啊我缺爱综合症
    善水嗯君阅读 296评论 0 0
  • 唔啦啦,不用去驾校被教练吼的今天是美好的。从昨晚起就计划明天要到健身房泡上一天,先要去跑步热身,再拉伸,练背部的动...
    太阳太阳赶快出来阅读 228评论 0 0