微软react-native-code-push热更新笔记

常用命令

以下命令基于code-push环境已经安装好
并且如下命令基本能满足常见热更新操作

  • 登录微软的服务器(默认)
    code-push login
  • 登录自己部署(公司)的服务器
    code-push login 自己的域名地址

说明:
1, 执行登录命令会打开浏览器,并且在浏览器屏幕正中间会显示token,将此token复制粘贴到终端,enter,就能登录成功。

2, 使用另外一台电脑生成的token,也可以登录(注意token会过期,如果过期登出再登录就行)。或者 默认浏览器如果没有登录code-push,需要先登录从而获取token。

3, 另外部署code-push到自己公司服务器,在iOS项目info.plist中需要添加一个key——CodePushServerURL

CodePushServerURL
http://codepush.xxxx.cn:xxxx/ 
  • 查看当前code-push账号下面的app
    code-push app ls(或list)

  • 命令来查看deployment key
    code-push deployment ls -k

  • 登出code-push
    code-push logout

下面命令终端需切换到RN项目根目录

  • 打包main.jsbundle
    react-native bundle --entry-file index.js --platform ios --dev false --bundle-output ./bundle/main.jsbundle --assets-dest ./ios/bundle

  • 发布rn的bundle到微软服务器

    • 方案1(推荐):code-push release-react YourProjectName ios --t 1.0.0 --dev false --d Staging --des "xxxxx"
      此处版本号要注意,详细见下文常见问题

    • 方案2:code-push release-react YourProjectName ios
      也就是code-push release-react
      这条命令默认发布到Staging,版本号1.0

  • 将测试版本Staging提升为Production
    code-push promote YourProjectName Staging Production

  • 查看发布的历史记录

    • Staging
      code-push deployment history YourProjectName Staging
    • Production
      code-push deployment history YourProjectName Production

想了解更多的命令详情,可以去官方文档查阅

常见问题

坑1(对于iOS):

app无法加载出本地图片资源!!

  • 解决:
    就是把你的结果(main.jsbundleassets)拖入工程时,对于assets文件夹,你要选择create folder reference,而不是 create folder group.
    正确的结果是assets文件夹是一个蓝色的文件夹,整个一起作为bundle resources

坑2(双端):

热更新不生效 (版本号设置问题引起)

  • 解决(iOS端):
// 设定每次热更新的版本号
- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge {
  [CodePush overrideAppVersion:@"1.0.0"];
  return [CodePush bundleURL];
}

// RN项目提交热更新版本
code-push release-react YourProjectName ios --t 1.0.0 --dev false --d Staging --des "xxxxx"

说明:
应该设定每次热更新的版本号(比如1.0.0),RN项目提交热更新版本的时候版本号要与此相同(比如1.0.0)
然后服务器会根据设定的版本号去找改版本号最新的提交(而不是code-push默认的V1、V2那种版本号),如果找得到就能热更。否则热更无效。

参考资料:

1,简洁直接的code-push使用教程(快速上手建议看这个):https://www.jianshu.com/p/67de8aa052af
2,深入分析的教程:https://www.jianshu.com/p/9e3b4a133bcc
3,官方文档(对照上面的博客看):http://microsoft.github.io/code-push/docs/react-native.html
4,踩坑参考:https://www.cnblogs.com/rayshen/p/5502538.html

你可能感兴趣的:(微软react-native-code-push热更新笔记)