WdBly Blog

懂事、有趣、保持理智

WdBly Blog

懂事、有趣、保持理智

周维 | Jim

603927378@qq.com

Code Push系列之-发布更新

Code Push发布更新的几种方式,包括了release、patch、promote、rollback这几个命令的使用介绍

Code Push系列之 - 环境安装

Code Push系列之 - 客户端检查更新

Code Push系列之 - 更新流程

发布新更新

release

code-push release <appName> <updateContents> <targetBinaryVersion> [--deploymentName <deploymentName>] [--description <description>] [--disabled <disabled>] [--mandatory] [--rollout <rolloutPercentage>]

说以下一些重要的参数

  • updateContents: 指定应用更新的资源和代码的位置就是打包后的jsbundle位置。 如 /opt/www/bundle/ios
  • targetBinaryVersion: 目标二进制的版本号,它的可选值规则如图
    image.png
  • Mandatory: 是否强制更新

强制更新参数有一个动态转换的过程,假如用户现在安装了v1版本,服务端更新了v2版本是强制更新,过后又上传了不是强制更新的v3,这是用户下载v3,v3就会变成强制更新(因为v2是强制更新的),这就是强制更新的动态转换

  • rollout: 指定可以更新的用户百分百,取值在1-100。默认为100

release-react

此命令用于一键发布,其实是将react-native bundle命令和code-push release命令结合起来使用。

code-push release-react <appName> <platform> [--bundleName <bundleName>] [--deploymentName <deploymentName>] [--description <description>] [--development <development>] [--disabled <disabled>] [--entryFile <entryFile>] [--gradleFile <gradleFile>] [--mandatory] [--noDuplicateReleaseError] [--outputDir <outputDir>] [--plistFile <plistFile>] [--plistFilePrefix <plistFilePrefix>] [--sourcemapOutput <sourcemapOutput>] [--targetBinaryVersion <targetBinaryVersion>] [--rollout <rolloutPercentage>] [--privateKeyPath <pathToPrivateKey>] [--config <config>]

补丁更新(patch)

在发布更新之后,如果想要修改此次更新的参数可以使用patch命令,如:你想增加更新的首次展示百分比。

code-push patch MyApp Product --label v10 --rollout 100
code-push patch <appName> <deploymentName> [--label <releaseLabel>] [--mandatory <isMandatory>] [--description <description>] [--rollout <rolloutPercentage>] [--disabled <isDisabled>] [--targetBinaryVersion <targetBinaryVersion>]
  • label:指定的部署环境里更新哪个发布版本(如:v10)

促进更新(promote)

有一个场景, 当我们在线上的Staging环境下测试完毕后,我们可以执行promote命令将之推进到Product环境,而不是重新执行release命令,然后重新设置参数。我们只需执行promote命令进行一个拷贝即可。

code-push promote <appName> <sourceDeploymentName> <destDeploymentName> [--description <description>] [--disabled <disabled>] [--mandatory] [--rollout <rolloutPercentage>] [--targetBinaryVersion <targetBinaryVersion]

使用promote命令的优势

  • 速度更快,不需要重新装配资源
  • 可靠性高,不会出错,因为这只是一个推进的过程

回滚更新(rollback)

当某个版本出现重大问题时,需要将版本回滚到老的正常版本去,可以使用rollback命令

code-push rollback <appName> <deploymentName> code-push rollback MyApp Production --targetRelease v10

targetRelease参数指定需要回滚的版本,默认为上个版本。

总结

以上就是Code Push的发布更新的命令了,每个命令的适用场景不一,可以自己在控制台中敲一敲加深理解。