Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
C
CodePush-iOS
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 0
    • Merge Requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Analytics
    • Analytics
    • CI/CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Demo
  • CodePush-iOS
  • Wiki
  • code push概念及常用命令

Last edited by John Huang Oct 30, 2019
Page history
This is an old version of this page. You can view the most recent version or browse the history.

code push概念及常用命令

概述

本文档在于两个方面:

  1. 针对Code Push的一些常见概念进行解释。
  2. 针对公司的常见开发情景罗列及介绍Code Push的常用命令。

关于Code Push的详细信息请参考下面链接:

  1. Github微软Code Push Plugin(概述、英文、需梯子)
  2. Github微软Code Push CLI工具(英文、需梯子)
  3. react-native-code-push进阶篇(高级用例,中文,无需梯子)

Code Push概念

AppCenter,应用中心。微软提供的一个应用管理平台。平台提供了热更新,应用监控等工具。其中Code Push是其提供的代码热更新管理工具。我们可以在AppCenter上面创建应用管理项目,管理我们实际发布的App。

Release,发布,热更新推送。当我们更新了代码,通过Code Push把更新推送到客户端。这样的操作,称作一次发布,release。

Deployment,部署。若干个release组成一个有前后依赖上下文的更新流称为一个部署,deployment。在创建App的时候Code Push会自动创建两个部署,Production和Staging。前者用作在线部署,后者则用作测试。Code Push还允许我们添加删除deployment,但通常我们并不会有这种需求。

常用Code Push常用命令

账号管理

code-push login

在终端登录AppCenter,该命令会在浏览器打开AppCenter登录页面,然后要求输入登录token。当用户在浏览器成功登录以后,网页会返回一个token,在终端输入该token就可以完成终端的登录。

code-push logout

在终端登出AppCenter。

code-push whoami

查看终端当前登录的账号。

App管理

code-push app add <appName> <os> <platform>

创建AppCenter应用管理项目。 譬如:code-push app add MyApp-iOS ios cordova。

code-push app rm <appName>

删除AppCenter应用管理项目。

code-push app ls

罗列AppCenter中的应用管理项目。

Release管理

code-push release-cordova <appName> <os> -d <deploymentName> -t <targetBinaryVersion> -m

推送cordova App热更新。常用的参数有以下这些:

-t,--targetBinaryVersion,指定需要更新到该版本的版本。关于版本指定的更多信息,请参考下表。一般来说,我们输入大版本号,譬如^1.0.0,^2.0.0...即可。大版更新尽可能与项目架构、数据结构、API接口更新相关,这种情况更适合通过发布完整的应用进行更新。

Range Expression Who gets the update
1.2.3 Only devices running the specific binary version 1.2.3 of your app
* Any device configured to consume updates from your CodePush app
1.2.x Devices running major version 1, minor version 2 and any patch version of your app
1.2.3 - 1.2.7 Devices running any binary version between 1.2.3 (inclusive) and 1.2.7 (inclusive)
>=1.2.3 <1.2.7 Devices running any binary version between 1.2.3 (inclusive) and 1.2.7 (exclusive)
1.2 Equivalent to >=1.2.0 <1.3.0
~1.2.3 Equivalent to >=1.2.3 <1.3.0
^1.2.3 Equivalent to >=1.2.3 <2.0.0

-m,--mandatory,指定该版本是否强制,该选项可以在推送过后再进行修改。理解强制更新我们先设想3个版本,v1,v2,v3。

譬如说,v2修改了数据库结构,如果从v1直接升级到v3可能会造成数据存储问题。这个时候,我们需要对v2设置强制更新。让CP知道从v1升级到v3必须经历v2。因为公司的开发一般都基于前一个版本递进式更新,所以建议,推送的时候如果没有特殊情况应该都-m。

在不指定该参数的情况下,默认为【不】强制更新。

-d, --deployment-name 指定部署。在不指定该参数的情况下,默认为Staging。

例如:code-push release-cordova MyApp-iOS ios -d Staging -t "^1.0.0" -m。 意思是为cordova项目MyApp-iOS推送更新。应用系统为iOS;部署为Staging;把所有>=1.0.0,<2.0.0的终端标识为更新目标;把该release识别为强制更新。

code-push patch -a <ownerName>/<appName> <deploymentName> -l <releaseLabel>

为release打补丁(修改配置)。 例如code-push -a MyApp-iOS Staging -l v3 -m。 意思是对应用管理项目"MyApp-iOS"的Staging部署的标识为v3的release进行修改。修改内容是把该release改成强制更新(-m)。

Clone repository
  • code push概念及常用命令
  • codepush研究记录
  • Home