使用App Center 的CodePush(一)
背景:codePush作为RN的特性之一,可热更新,提供方便修改代码,快速修改bug
1.注册AppCenter
去AppCenter官网注册
android和ios项目配置appcenter
2.创建项目
创建一个项目,MyApp Android ReactNative
3.安装App Center CLI
可以使用 App Center CLI 管理 CodePush 的大多数功能
yarn global add appcenter-cli
或
npm install -g appcenter-cli
4.登录
终端登录
appcenter login
(1).如果网页端没有登录,会自动跳转到appcenter的登录页面
(2).如果网页端已登录,会自动跳转到Access code的页面,复制code,并在终端输入
5.创建App,使用codepush
(1).查看一下apps
$ appcenter apps list
(2).命令创建项目、更新、删除项目
$ appcenter apps create -d <appDisplayName> -o <operatingSystem> -p <platform>
eg:
$ appcenter apps create -d MyApp-Android -o Android -p React-Native
更新
$ appcenter apps update -n <newName> -a <ownerName>/<appName>
删除
$ appcenter apps delete -a <ownerName>/<appName>
(3).设置当前应用程序
如果没有设置当前应用程序,查看所有部署的key 需要添加 -a
appcenter codepush deployment list -a <ownerName>/<appName>
$ appcenter codepush deployment list -a JamesWu23/MyApp-Android
如果设置了当前应用,就可以将 -a 去掉
$ appcenter codepush deployment listÏ
appcenter apps set-current <ownerName>/<appName>
$ appcenter apps set-current JamesWu23/MyApp-Android
查看当前应用
$ appcenter apps get-current
(4).创建部署
部署可以创建两个,分别是 Staging和 Production
这里的<ownerName>/<appName> 对应的就是 JamesWu23/MyApp-Android
创建
appcenter codepush deployment add -a <ownerName>/<appName> Staging
appcenter codepush deployment add -a <ownerName>/<appName> Production
修改名字 deploymentName = Staging
appcenter codepush deployment rename -a <ownerName>/<appName> <deploymentName> <newDeploymentName>
删除
appcenter codepush deployment remove -a <ownerName>/<appName> <deploymentName>
也可在官网创建
查看部署的密钥(也可在上图的官网中查看Ï)
$ appcenter codepush deployment list --displayKeys
查看
$ appcenter codepush deployment list -a <ownerName>/<appName>
查看部署(也可在上图的官网中查看Ï)
$ appcenter codepush deployment list -a <ownerName>/<appName>
(5).发布更新
发布之前,先创建bundlejs
$ react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res
--platform 平台
--entry-file启动文件
--bundle-output 打包js输出文件
--assets-dest 资源输出目录
--dev 是否调试
$ appcenter codepush release -a <ownerName>/<appName> -d Staging -t 1.0.0 -m --development false --description <description> -c android/app/src/main/assets/index.android.bundle
-a <ownerName>/<appName> 指定应用
-d Staging 此参数指定要将更新发布到的部署。它默认为Staging,但是当您准备部署到Production或您自己的自定义部署之一时,只需显式设置此参数即可。
-t 1.0.0 指定要更新的应用的原生版本
-m|--mandatory false 是强制更新,默认 false
--development false 此参数指定是否生成未缩小的开发JS包。如果未指定,则默认为false禁用警告并缩小包的位置。
--description 内容 此参数为部署提供了可选的“更改日志”。该字符串接受诸如\n和的控制字符,\t因此您可以在描述中包括空格格式,以提高可读性。
以下更为详细
[-t|--target-binary-version <version>]
[-с|--update-contents-path <updateContentsPath>]
[-r|--rollout <rolloutPercentage>]
[--disable-duplicate-release-error]
[-k|--private-key-path <privateKeyPath>]
[-m|--mandatory]
[-x|--disabled]
[--description <description>]
[-d|--deployment-name <deploymentName>]
[-a|--app <ownerName>/<appName>]
[--disable-telemetry]
[-v|--version]
(6).多部署测试
需求:我们在使用过程中,如果有个预发布版本 Staging/debug 在测试之后,没有问题,需要发布到Production/release
可以同步更新到Production/release 并验证其工作
$ appcenter codepush promote -a <ownerName>/<appName> -s Staging -d Production
(7).按比例推送
需求:第6条同步更新,可以按照一定比例推送热更新
$ appcenter codepush promote -a / -s Staging -d Production -r 20%
如果确定没有问题,可以全量更新
$ appcenter codepush promote -a / -d Production -r 100%
(8).回滚部署
需求:如果出现热更新错误,紧急下架,可以回滚应用
$ appcenter
评论区