ReactNative打离线包-Android篇

离线包就是把RN和js文件、图片等资源都打包放入app,不需要走网络下载。

1、生成签名文件

使用 Android studio 进行签名
1
2

如果已有签名文件可以选择使用已有的,没有点击新建


3

红框内的为必填项


4

注意:请记得妥善地保管好你的密钥库文件,不要上传到版本库或者其它的地方。

2、添加签名到应用的gradle配置中

把你的签名文件sdwan.jks放到你工程中的android/keystores/文件夹下。

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

   signingConfigs {
        releaseConfig {
            storeFile file('../keystores/sdwan.jks')
            storePassword 'sdwan123'
            keyAlias 'sdwan'
            keyPassword '123456ok'
        }
    }
    ...
    buildTypes {
        release {
            ...
            signingConfig signingConfigs.releaseConfig
        }
    }

3、打包命令说明

react-native bundle

Options:

--entry-file Path to the root JS file, either absolute or relative to JS root [required]

--platform Either "ios" or "android"

--transformer Specify a custom transformer to be used (absolute path) [default: "/Users/babytree-mbp13/projects/xcodeProjects/AwesomeProject/node_modules/react-native/packager/transformer.js"]

--dev If false, warnings are disabled and the bundle is minified [default: true]

--prepack If true, the output bundle will use the Prepack format. [default: false]

--bridge-config File name of a a JSON export of __fbBatchedBridgeConfig. Used by Prepack. Ex. ./bridgeconfig.json

--bundle-output File name where to store the resulting bundle, ex. /tmp/groups.bundle [required]

--bundle-encoding Encoding the bundle should be written in (https://nodejs.org/api/buffer.html#buffer_buffer). [default: "utf8"]

--sourcemap-output File name where to store the sourcemap file for resulting bundle, ex. /tmp/groups.map

--assets-dest Directory name where to store assets referenced in the bundle

--verbose Enables logging [default: false]
打包步骤

1、在工程根目录下执行打包命令:react-native bundle --platform android --dev false --entry-file index.android.js --bundle-output android/app/src/main/assets/index.android.jsbundle --assets-dest android/app/src/main/res/

2、
打包并安装:
cd android && ./gradlew installRelease
只打包:
cd android && ./gradlew assembleRelease ---生产包
cd android && ./gradlew assembleDebug ---测试包

注意:RN0.5以后自动打包,只需要做步骤2就可以了

打包遇到的问题

1、文件夹错误


说明:文件夹为空,删除出错的文件夹即可。

2、签名冲突


说明:模拟器上安装的APP和打包APP签名不同导致冲突,卸载掉模拟器上的APP即可。

成功

安装包存放位置如图所示:


参考:
https://www.jianshu.com/p/1380d4c8b596
https://blog.csdn.net/u011272795/article/details/77161942

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

推荐阅读更多精彩内容

  • 离线包就是把RN和你写的js图片等资源都打包放入app,不需要走网络下载。 打包命令说明: 安卓打包步骤 1、在工...
    eyow阅读 8,362评论 1 3
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,087评论 25 709
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 11,712评论 0 17
  • 层云遮住日光蒙蔽太阳 茂密枝叶里鸟儿在欢唱 庄稼地不渴望久逢甘霖 就如同我并不想你一样
    飞鸟云青阅读 1,430评论 0 3
  • 九月份收集(待更新) 1.对象完全冻结函数(包括属性) 2.获取顶层对象函数 勉强在任何环境(浏览器、Node、W...
    海野夏桑阅读 1,157评论 0 0