RN用自己的服务器热更新

不使用第三方,用自己的服务器更新。

RN的热更新其实就是替换App加载的js包,更新分为全量更新和增量更新;

    全量更新很简单,就是下载js包存到本地,下次APP读取新的路径;

    增量更新需要用到bsdiff第三方工具,bsdiff有分离和合并2个方法;  bsdiff用分离方法 将新旧文件(jsbundle_orgin,jsbundle_new)生成一个差异文件(简称patch包),将patch包放在服务器上供App下载;

    App下载后再用bsdiff的合并方法将本地的原始jsbundle和patch包合并成新的jsbundle,存在本地,下次App启动就            读取新的路径;

上代码:

    分包:Mac可以使用终端命令,直接敲bsdiff回车,使用方法,会有提示bsdiff: usage: bsdiff oldfile newfile patchfile,生成的patch文件可以上传到自己的服务器,如果太大可以再压缩成zip;

    合包:下载bsdiff, 可以参考现成的RN中文网的更新代码,注意将里面的bspatch.c文件替换成刚刚下载的bspatch.c,把bspatch.c里面的err函数改为return -1;err函数会触发App崩溃;更新代码逻辑需要花点时间慢慢看;

你可能感兴趣的:(RN用自己的服务器热更新)