ReactNative 使用Rushy热更新走过的坑

这段时间研究了下Rushy热更新ReactNative应用,走了许多坑,这里就把流程写一下吧。

我只使用了iOS的热更新,所以Android的坑就不知道,见谅。

这里将所有的安装命令就在这汇总下,具体的可以看其他博主的文章
常用命令汇总:

// 第一步 安装模块
npm install -g react-native-update-cli rnpm(一台机子执行一次)
npm install --save react-native-update
react-native link react-native-update

//第二步 登录绑定
pushy login
pushy createApp --platform ios
App Name: <输入应用名字>
pushy createApp --platform android
App Name: <输入应用名字>
pushy selectApp --platform ios
1) 鱼多多(ios)
3) 招财旺(ios)

//第三步 上传包
pushy uploadIpa 
pushy uploadApk android/app/build/outputs/apk/app-release.apk
//第四步 发布执更新
pushy bundle --platform 

pushy的网站(http://update.reactnative.cn/home)上面注册账号,并注册应用.
具体的操作流程看GitHub

重点!!!!
这里要说的就是关键步骤

  1. 在第二步完成后 需要在RN项目的App.js里添加热更新检测的代码,这样打包的ipa包才能有热更新功能,具体代码看操作流程
  2. iOS打包的ipa包一定要是releass 不然不会有热更新的内容!!
    ReactNative 使用Rushy热更新走过的坑_第1张图片
  3. 如何使用没有买99刀的账号生成ipa包 看这里 打包ipa的方法
  4. 第四步出现这个错误
Bundling with React Native version: 0.53.0
Error: Cannot find module 'metro-bundler/src/babelRegisterOnly'
at Function.Module._resolveFilename (module.js:543:15)
at Function.Module._load (module.js:470:25)
at Module.require (module.js:593:17)
at require (internal/module.js:11:18)
at Object. (/Users/hulinhu/Desktop/react-naive/MyApp/node_modules/react-native-update/local-cli/lib/bundle.js:439:9)
at Generator.next ()
at step (/Users/hulinhu/Desktop/react-naive/MyApp/node_modules/react-native-update/local-cli/lib/bundle.js:310:191)
at /Users/hulinhu/Desktop/react-naive/MyApp/node_modules/react-native-update/local-cli/lib/bundle.js:310:361
at

解决方法

将\node_modules\react-native-update\local-cli\lib\bundle.js中439行的
'metro-bundler/src/babelRegisterOnly'改为
'metro-bundler/build/babelRegisterOnly',或
'metro/src/babelRegisterOnly' 

5.一定要将这4步都走完一遍后再修改代码,不然会造成不可预知的后果,比如崩溃等。。。当出现这个问题,将之前的版本全删掉,再重新打包ipa试一下就好了。
6. 第四步最后的时候会让你输入包序号

Offset 0
1) FvXnROJ1 1.0.1 (no package)
2) FiWYm9lB 1.0 [1.0]
Enter versionId or page Up/page Down/Begin(U/D/B) <输入序号,U/D翻页,B回到开始,序号就是上面列表中)前面的数字>

100) 1.0(normal) - 3 FiWYm9lB (未命名)

Total 1 packages.
Enter packageId: <输入包版本序号,序号就是上面列表中)前面的数字>

这里的包版本序号就是

  1. 1.0(normal) - 3 FiWYm9lB (未命名)*

这里的100 解释的也比较清楚了

7 这里也有主要Issues 可以参考

你可能感兴趣的:(ReactNative)