android rn热更新闪退,RN热更新-相关-

基于微软服务-搭建RN环境。

ios和Android的环境都已经在分支“20190513_feature_hot_tangliang”里面整理好了,如果需要看环境配置细节(本RN版本为"react-native": "0.59.5",)点击热更新,如果需要参考他人的CodePush热更新详细接入教程

基于“20190513_feature_hot_tangliang”分支的项目。

一 、安装code-push-cli

如果没有全局安装code-push-cli;则:

npm install -g code-push-cli;

在项目的根目录打开命令行: code-push register

会打开一个网页然后注册登录,会有一个key,复制这个key到命令行输入就可以了,这样在本地就登录了微软的服务了。

如果之前就有微软的账号可以直接用code-push login;

然后用命令在微软服务里面add对应的ios和Android的react-native项目。其中

code-push app add MyAppIOS ios react-native

MyAppIOS为名称。对应ios平台的rn项目。

code-push deployment ls MyAppIOS -k

列出对应项目的production和staging的deployment key;

code-push app add MyAppAndroid android react-native

code-push deployment ls MyAppAndroid -k

查找对应的key后复制出来,总共四个(ios和Android各两个,staging为测试环境,production为生产环境。)

二、修改对应的key

ios项目在如图所示的地方写入对应的key;

722418f9d664?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

Android则在写入对应的key。这里只做production的输入示例。

722418f9d664?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

三、打包对应的js文件

先打包对应的jsbundle文件。具体配置在package.json里面有配置。(如果没有对应的bundle文件夹需要先手动创建,ios在,./ios/下新建文件夹,Android在./android/app/src/main/assets/,Android的应该已经有了。)执行如下命令:

"bundle-android": "react-native bundle --entry-file index.js --platform android --dev false --bundle-output ./android/app/src/main/assets/index.android.bundle --assets-dest ./android/app/src/main/res/",

"bundle-ios": "react-native bundle --entry-file index.js --platform ios --dev false --bundle-output ./ios/bundle/index.ios.jsbundle --assets-dest ./ios/bundle",

打包Android和ios的js文件

四、接着打包对应ios和Android的包。基于分支项目可以直接用xcode和AndroidStudio打包对应的项目。具体配置可以看官方文档。打包apk正式包

1、打包Android包。

提示:如果你是mac电脑需要找到jdk的安装目录可以再命令行输入:

/usr/libexec/java_home -V

722418f9d664?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

中间的结果表示当前 Mac 已经安装的 JDK 目录;最后一行表示默认使用的 JDK 版本

也可以直接用AndroidStudio打包apk。(测试包debug模式。)如果需要正式包可以看

会生成对应的apk

2、打包ios包。

在xcode主界面。按下:shift+command+,   弹出如下选择release也可以debug。对应的热更新的key已经都在项目里面了。这里用release讲解。

722418f9d664?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

然后直接close。

然后苹果手机连接电脑,如下图。这个是ios模拟器,可以点击选择自己的真机。

722418f9d664?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

然后点击上图左边的三家箭头。接着等待xcode编译完成,就会在对应的模拟器或者手机安装我们的应用了。

五、发布到微软中心。

"push-bundlejs": "code-push release-react superviseApp ios --t 1.0.0 --dev false --d Production --des '第一次更新' --m false",

"push-bundlejs-android": "code-push release-react superviseAppAndroid android --t 1.0.0 --dev false --d Production --des '第2次更新' --m false",

发布对应的打包好的bundle到微软平台。这样我们打开手机的时候就会有热更新提示了。

命令说明:superviseApp为应用名称,ios为对应ios的应用,–t 1.0.0表示当前热更新推送到的目标版本。比如当前需要更新的app的版本为1.0.0,那么每次需要热更新都是1.0.0,除非下次发布了新的版本号。–-dev是否开发版本,–d

Production 对应的模式,是用production的key还是staging模式的key。–des 更新的描述,–m 是否强制更新。

ps:

1、iOS和android最好将版本号改为x.x.x形式

2、使用staging时貌似成功几率很低,所以在第一个版本未发布之前可以用production模式测试。

3、不适用于文件目录结构更改(添加文件可以)

4、 引入第三方后 如果修改了原生代码更新无法使用会导致闪退。

5、ios目前不能再debug模式测试更新 因为会一直加载本地jsbundle 覆盖下载后的,所以看不到效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值