App的热更新即,不通过应用商店的审核,直接下载远程的代码更新用户手机中的app。由于iOS应用审核周期长,审核规则复杂所以热更新对于iOS平台来说显得更为迫切,但在原生的iOS代码中实现起来比较复杂,有被拒绝的风险。而React Native由于其加载jsbundle的特点,实现热更新并不复杂。而采用Js热更新的React Native并没有受到WaxPatch、JSPatch等热修复框架被禁止的影响。
React Native的热更新方案有很多种,比如微软的CodePush、或者如携程的jsbundle拆分方案等,但是基本原理都是一致的,就是远程加载jsbundle,下面记录实现热更新的几种方案
CodePush 是微软提供的一套用于热更新 React Native 和 Cordova 应用的服务。
CodePush 是提供给 React Native 和 Cordova 开发者直接部署移动应用更新给用户设备的云服务。CodePush 作为一个中央仓库,开发者可以推送更新 (JS, HTML, CSS and images),应用可以从客户端 SDK 里面查询更新。CodePush 可以让应用有更多的可确定性,也可以让你直接接触用户群。在修复一些小问题和添加新特性的时候,不需要经过二进制打包,可以直接推送代码进行实时更新。