对于RN开发而言,最方便的就是热修复了,我们公司项目集成的热修复是:react-native-update,但是我们的用户主要针对尼日利亚用户,而国内的react-native-update补丁包是放在国内七牛上的,因此访问巨慢,加上尼日利亚那边基本都是3G,综合考虑该换微软的:CodePush.
对于CodePush而言,东西是真的多,覆盖问题真的全,因此我们需要摘出我们需要的东西——根据需求找需要。
需求:
- 由于项目是跟金钱挂钩的,所以首先,可能发现重大漏洞,就要求所有用户必须更新,并且期间不能使用APP,更新完之后再使用APP。此时对于开发而言就是说:需要有一个弹框,然后显示下载进度。并且这个弹框是不能够回退关闭的。
- 可能发现一些“小”BUG,比如:视觉UI显示错误,这些可能对于用户而言,不是必须的。因此我们可以让用户默默下载,然后下次启动的时候释放补丁包。也就是:无感更新。
综上所需: 我们得出两点:
- 强制更新,弹窗显示进度
- 无感更新。
进入正题,首先是安装CodePush脚手架:
npm install -g appcenter-cli
然后安装CodePush :
npm install --save react-native-code-push
接着就是配置Android和IOS环境:
Android IOS配置链接
配置成功之后,我们需要先在项目根目录登录codePush:
appcenter login
登录成功之后会显示owner-name 需要记一下。
创建应用(Android):
appcenter apps create -d TestCodePush -o Android -p React-Native
其中TestCodePush 是你自己的项目名。
然后创建分支:开发分支,还有线上分支,当然了你也可以创建测试分支以及灰度分支:
appcenter codepush deployment add -a <ownerName>/<appName> Staging
appcenter codepush deployment add -a <ownerName>/<appName> Production
上述命令行,创建成功之后都会显示一个key, 这个key就是配置Android项目中的key。
当然了可以运行
appcenter codepush deployment list -a <ownerName>/<appName> --displayKeys
查看key。
至此,我们的环境就算基本搭建完成了。