ReactNative离线打包

来源:互联网 发布:淘宝刷销量软件免费版 编辑:程序博客网 时间:2024/05/29 20:01

今天有人问我能不能给我看一下用RN写的Demo啊,我说没问题,于是我就通过QQ的面对面传送文件,将我手机上的APK传导了对方手机上,但是对方安装apk之后发现根本打不开,于是问题就来了,为什么在我手机上可以运行的apk在别人手机上就运行不了呢。

原因就在于,我们开发的时候是在调试的状态,每一次安装的时候首先都要摇晃手机,设置和自己电脑相同的ip,还要配置8081端口,这个设置其实就是在使用自己本地的npm服务编译自己的js,从而展现出来的效果。但是当你把apk发给别人以后,别人怎么可能访问你本地的npm呢,所以一定会出问题的。

下面言归正传,如何解决问题呢,我们开始:

首先我的前端开发工具是WebStrom,我们打开WebStrom,将脚本文件pack.sh放倒RN项目的根目录下方。pack.sh是一个脚本文件,内部就是离线打包的命令。以下是pack.sh的内容:

react-native bundle --entry-file index.android.js --bundle-output ./android/app/src/main/assets/index.android.bundle --platform android --assets-dest ./android/app/src/main/res/ --dev false && react-native bundle --entry-file index.ios.js --bundle-output ./ios/bundle/index.ios.jsbundle --platform ios --assets-dest ./ios/bundle --dev false

接下来:我们在WebStrom的命令行中输入运行脚本的命令:chmod 777 pack.sh

./pack.sh

以上两条命令,第一次需要两句都要输入,之后只需要输入第二条命令即可。


接下来打开AndroidStudio,带卡你的工程。

你就会看到在你的assets文件夹下出现了外部的资源文件“index.android.bundle”这个就是你离线打包出来的js资源库。

加下来你需要做到就是重写Application中的getBundleName方法


然后运行,就能看到手机上的效果了,这个apk也可以给其他人安装。至此离线打包已经实现。新手路过,不喜勿喷0.0

原创粉丝点击