codePush已经被微软将其移动到了appcenter中心,后续关于codePush的相关问题都移步到appcenter官网中进行查看https://appcenter.ms
本文只记录通过codePush对React Native项目进行热更新的操作,关于集成方面直接查看官方文档即可(官方集成文档:https://docs.microsoft.com/zh-cn/appcenter/distribution/codepush/rn-updates)
本地准备:
- 命令如果采用appcenter codepush,则需要安装appcenter插件
- 命令如果采用code-push,则需要安装code-push
npm install appcenter -g
nom install code-push -g
集成前,需要在appcenter中创建应用,应用一般会挂在organization下面:
- 登录状态下https://appcenter.ms/apps中,注意创建Platform选择React Native,android和ios平台需要各自创建应用
应用创建成功后,可以通过网页界面查看到应用的key,也可以通过命令查看
appcenter codepush deployment list --app <organizationName>/<appName>
通过app进行应用集成,app发布后,遇到需要进行热更的情况,可以按需要根据一下命令进行热更新
bundle打包命令(android的类似)
react-native bundle --entry-file index.js --bundle-output ./ios/bundle/main.jsbundle --platform ios --assets-dest ./ios/bundle --dev false
发布命令:
// 由于ios配置问题,无法在plist文件中直接读出版本号,因此通过--t参数手动指定app版本号
// 1 appcenter codepush release-react命令,内部会进行bundle的打包,之后进行appcenter校验和上传(如果bundle中的内容和上个版本一致则会上传失败)
appcenter codepush release-react -a organizationName/appName --t 4.1.1 -d Production -m --description "1.测试"
// 2 手动指定bundle和assets目录进行上传发布
appcenter codepush release -a organizationName/appName -c ./ios/bundle --t 4.1.1 -d Production -m --description "1.测试"
在发布后,也可以根据需要在appcenter页面中对发布的热更新进行干预
其他命令自行根据appcenter --help获取:
deployment View and manage your app deployments
patch Update the metadata for an existing CodePush
release
promote Create a new release for the destination
deployment, which includes the exact code and
metadata from the latest release of the
source deployment
release-cordova Release a Cordova update to an app deployment
release-electron Release an Electron update to a deployment
release-react Release a React Native update to an app
deployment
release Release an update to an app deployment
rollback Rollback a deployment to a previous release