项目热更新操作梗概
示例项目说明
环境 | react-native 0.61.5
react-native-code-push 6.2.1
code-push 2.1.9
注意事项
修改原生文件
包括但不限于原生项目的目录结构,原生项目中的资源文件(如:启动图,应用图标等),原生项目代码(如:*.java,*.gradlew,*.h,*.m),总之IOS/Android目录中有任何变动都不可使用
检查原生项目中的热更新相关配置
(IOS中Build Setting->User-Defined->CODEPUSH_KEY,Android中app->src->main->res->values->strings.xml->CodePushDeploymentKey)是否与线上版本一致
使用热更前先看文档将本地热更环境调试通过
https://github.com/microsoft/react-native-code-push
常用命令(3-6常用,7-15可忽略)
1.查看当前code-push 版本信息及帮助命令
code-push whomi
2.登录,执行该命令后会在浏览器弹出一个页面显示token(因为微软服务器在国外,获取token可能需要些时间,还请各位大佬耐心等待或重新获取),将浏览器中的token复制到命令行回车即可
code-push login
3.查看应用的热更新安装指标
code-push deployment h <AppName> <Production|Staging>
4.提交一个热更新版本
- -t AppVersion(1.0.4) 指当前要更新的原生版本号
- desc 指更新说明
- -r 50 指灰度更新50%(0-100),一般情况下不需要灰度更新
code-push release-react <AppName> <ios|android|windows> -t <AppVersion> -d <Production|Staging> --des <desc> -m true -r 50
5.热更新版本回滚(当热更上的版本有问题时,使用该命令)
- -t Label(v22) 指回滚到指定的热更新版本,但必须保证原生项目版本一致(如:IOS原生版本为1.0.3,热更版本有v11,v12,v13.原生版本为1.0.2,热更版本为v7,v8,v9.此时若用户手机版本为1.0.2,热更版本为v9,可只可选择回滚至v7|v8,否则回滚失败,1.0.2的原生版本也无法检测到高于自身版本所提供的热更新包)
code-push rollback <AppName> <Production|Staging> -t <Label>
6.热更新版本描述修改
- -t Label(v22) 指要修改的热更新版本
code-push patch <AppName> <Production|Staging> -l <Label> --des <desc>
7. 查看账号下创建的项目
code-push app list
8. 删除已经添加的应用
code-push remove <AppName>
9. 重命名一个存在的App
- OriginalAppName 为原始名称,name为要变更的名称
code-push app rename <OriginalAppName> <name>
10. 添加一个项目
code-push add <CreateAppName> <ios|android|windows> react-native
11. 查看账号登录历史(token创建历史)
code-push access-key ls
12. 删除某个登录的token授权(若key同名,则由近及远删除最新的)
code-push access-key rm <accessKey>
13. 添加协作者(执行完会发送邀请信息到协作者邮箱)
code-push collaborator add <AppName> <CollaboratorEmail>
14. 删除一个项目的所有部署(谨慎执行)
code-push deployment rm <AppName> <Staging|Priduction>
15. 查看一个项目下的部署
code-push deploy h <AppName> <Staging|Production>
操作流程
修改JS或添加资源文件
检查code-push登录状态
进行热更新提交(注意:Android 和 IOS 需要分别提交热更新)
若出现线上热更版本有问题,及时执行回滚操作