Azure DevOps 扩展
通过Azure DevOps源代码管理分支,使用 CodePush 扩展可以减少使开发/alpha/beta/等部署保持最新状态所需的工作量。 自动生成会负责其余操作,这意味着无需手动发布、推广或推出 App Center CLI。
这些任务可以与 Azure DevOps TFS 2015 Update 2 一起使用,并且适用于任何 Cordova 或 React Native项目。 此外,这些任务可以很好地与 Cordova 命令 任务或 React Native Bundle任务配对,这样你便可以轻松地"准备"平台特定的资产,稍后可将其释放到 CodePush。

快速入门
按照以下步骤通过 CodePush 自动发布和推广应用更新:
使用 App Center CLI生成一个新的访问令牌,该令牌的说明指示它将用于 AZURE DEVOPS CI (,
appcenter tokens create -d "VSTS-CI"例如)备注
可以使用 App Center 门户中显示的 API 密钥,无需通过 App Center CLI 生成其他令牌。
从 Azure DevOps Marketplace 安装 CodePush 扩展
转到 Visual Studio Team Services 或 TFS 项目,单击"生成"选项卡,然后创建新的生成定义 ("+"图标) 已挂接到项目的适当源存储库。
备注
如果已有应用的生成定义设置,可以随意重新使用它。 CodePush 不需要不同的生成/发布定义来工作。
单击 "添加生成步骤...", 然后根据应用类型或要求从"部署"类别中选择以下任务之一:
使用在步骤 #1 中创建或检索到的访问令牌配置发布任务,并指定应用名称 ( MyApp-iOS) 、部署名称和所有其他必需参数。 有关每个选项的详细信息,请参阅下面的参考文档。
单击 " 队列生成 " 按钮或将更改推送到存储库以运行新定义的生成管道
运行 CodePush-ified 应用以查看自动部署的更改!
前进后,您可以选择利用 CodePush-升级 任务自动将更新发布到一个部署 (例如, 过渡) 然后自动将其升级到另一个部署 (例如,根据需要进行 生产) 。 此任务非常适合于 Azure DevOps Release Management 功能,在该功能中,你可以定义多个环境 (每个环境都有自己的部署管道) ,还可以通过手动审批者来实现更新,而无需牺牲要验证的任何控件。
全局配置凭据
除了在每个生成任务实例中直接指定访问令牌 (如 "快速入门") 部分中所述,还可以在全局范围内配置 CodePush 凭据,并根据需要在每个生成或发布定义中引用它们。 全局凭据可以简化跨团队使用 CodePush 的工作,提高安全性,因为每个生成和发布定义不必手动配置帐户凭据。 若要全局配置你的凭据,请执行以下步骤:
如上文所述,生成或检索你的访问令牌
备注
如果要检索以前生成的访问令牌,可以运行 命令,并查找具有最初创建令牌
appcenter token list时指定的说明的令牌。转到Visual Studio Team Services TFS 项目,然后单击右上角的齿轮图标
单击"服务 " 选项卡
单击" 新建服务终结点", 然后选择 "CodePush"
为新终结点指定名称 (例如"MyApp-iOS") 并输入在步骤 #1

每当将 CodePush 任务添加到生成或发布定义时,#5中选择的名称选择此终结点。
发布应用更新!
任务参考
除了自定义服务终结点外,此扩展还参与以下生成和发布任务:
CodePush - Release - 允许自动将常规用途内容发布到 CodePush 服务器。 此任务提供最大的灵活性,但仅在特定于平台的任务(例如 Cordova ()不适合) 才使用。
CodePush - (Cordova) - 允许自动生成和发布 Cordova 应用更新。 表示特定于 Cordova 的简化版常规用途发布任务,建议用于所有 Cordova 方案。
CodePush - Patch - 允许自动修改以前发布的更新。 此选项对于以下情况非常有用,例如增加最初"已测试"发布的发布 (例如,向) 用户推出,或启用默认禁用
25%的发布。CodePush - 提升- 允许自动将以前发布的更新从一个部署提升到另一个部署 (例如过渡生产 -> ) 。
CodePush - 发布
允许你将 CodePush 更新App Center服务器。 此任务的行为等效于 App Center CLI 中的 命令, appcenter codepush release 包括以下选项:
身份验证方法 -指定要如何向 App Center 服务器进行身份验证。 可用选项是:
访问令牌 -允许你直接指定任务的访问令牌。 此值可由 App Center CLI 生成,或在 autoprovisioned 帐户和应用后由 App Center 门户提供给你。
服务终结点 (CodePush) -允许引用全局配置的 CodePush 服务终结点。
服务终结点 (HockeyApp) -允许引用全局配置的 HockeyApp 服务终结点。
应用所有者/应用名称 (字符串,必需的) -要发布其更新 (的应用所有者和应用的名称(例如) )
<ownerName>/MyApp-iOS。部署 (字符串,必需的) -要将更新发布到的部署的名称。 默认值为 " 过渡"。
更新内容路径 (文件路径,必需的) -文件或目录的路径,该文件或目录包含你要发布的更新。 对于 Cordova,它应该是特定于平台的 www 文件夹 (例如, 平台/ios/www) ,对于响应本机,它应指向生成的 JS 包文件 (例如, ios/main.js捆绑) 或包含你的 js 包和资产的目录,具体取决于你使用的是 "响应本机资产" 系统。 查看 CLI 文档 了解更多详细信息。
目标二进制版本 (字符串,必需) - Semver 表达式,该表达式指定此版本面向的二进制应用版本 (例如1.1.0、~ 1.2.3) 。 查看 CLI 文档 了解更多详细信息。
更新元数据
除了基本属性,以下选项还提供对版本的更高级控制,以及如何将其分发给最终用户:
(字符串) 的推出-此版本应立即可用于的用户的百分比。 默认值为 100%。
说明*(字符串)* - 此版本中对应用所做的更改的说明。 在发布定义中Azure DevOps此任务时,可以将此字段设置为 变量,以继承为发布
$(Release.ReleaseDescription)提供的说明。必需*(布尔)* - 指定是否应当将此版本视为必需版本。 默认为
false。已禁用*(布尔)* - 指定是否应该立即下载此版本。 默认为
false。
CodePush - (Cordova)
允许你将 Cordova 应用 CodePush 更新App Center服务器。 它通过) 自动生成 (发布内容,并推断应用的版本以适当定位更新,从而简化常规用途发布任务的体验。 cordova prepare 此任务的行为等效于 App Center CLI 中的 命令, appcenter codepush release-cordova 包括以下选项:
身份验证方法 - 指定要如何使用 App Center 进行身份验证。 可用选项是:
访问令牌 - 允许直接指定任务的访问令牌。 此值可能是由 App Center CLI 生成的,或者由 App Center 门户在自动预配帐户和应用后提供。
服务终结点 (CodePush) - 允许引用全局配置的 CodePush 服务终结点。
HockeyApp (服务终结点) - 允许引用全局配置的 HockeyApp 服务终结点。
应用所有者/ 应用名称 (字符串, 必需) - 要发布更新的应用的名称,例如 (应用
<ownerName>/MyApp-iOS) 。部署*(字符串,)* - 要发布更新的部署的名称。 默认为暂 存。
生成*(布尔)* - 指定是否要运行任务
cordova build而不是cordova prepare。 如果你的应用包含你要触发的 Cordova 生成任务,则此选项会很有用。 默认为false。
更新元数据
除了基本属性,以下选项还提供对版本的更高级控制,以及如何将其分发给最终用户:
(字符串) 的推出-此版本应立即可用于的用户的百分比。 默认值为 100%。
描述 (字符串) -在此版本中对应用所做的更改的说明。 当在 Azure DevOps release 定义中使用此任务时,可以将此字段设置为
$(Release.ReleaseDescription)变量以继承提供给发布的说明。目标二进制版本 (字符串,必需) - Semver 表达式,该表达式指定此版本面向的二进制应用版本 (例如1.1.0、~ 1.2.3) 。 查看 CLI 文档 了解更多详细信息。 选择
Auto-Detect将自动从 config.xml 文件中读取应用程序的版本。必需 (布尔) -指定是否应将此版本视为必需的。 默认为
false。禁用 (布尔) -指定是否应立即下载此版本。 默认为
false。
CodePush-修补程序
允许您更新以前发布的更新的元数据。 此任务的行为与 appcenter codepush patch APP CENTER CLI 中的命令等效,并包括以下选项:
身份验证方法 -指定要如何通过 CodePush 服务器进行身份验证。 可用选项是:
访问令牌 -允许你直接指定任务的访问令牌。 此值可以是由 CodePush CLI 生成的,也可以由 App Center 门户在 autoprovisioned 你的帐户和应用后提供给你。
服务终结点 (CodePush) -允许引用全局配置的 CodePush 服务终结点。
服务终结点 (HockeyApp) -允许引用全局配置的 HockeyApp 服务终结点。
应用所有者/ 应用名称 (字符串, 必需) - 包含要更新版本的应用的名称 (例如
<ownerName>/MyApp-iOS) 。Deployment (String, required) - 包含要更新的发布的部署的名称。 默认为暂 存。
发布标签*(字符串,必需*) - 要更新元数据的发布的标签 (例如
v23) 。 选择 " 最新"将更新指定部署中的最新版本。 默认为"最新"。
更新元数据
默认情况下,修补操作不会修改任何发布属性,因此,若要更新任何元数据,需要更改此组中以下一个或多个选项的默认值。
推出*(字符串)* - 此版本应立即可供用户使用的百分比。 选择 " 继承"将保留这些属性未修改。 默认 继承。
说明*(字符串)* - 此版本中对应用所做的更改的说明。 选择 " 继承"将保留这些属性未修改。 在发布定义中Azure DevOps此任务时,可以将此字段设置为 变量,以继承为发布
$(Release.ReleaseDescription)提供的说明。 默认 继承。目标 二进制版本 (String, 必需) Semver 表达式,指定此版本面向的二进制应用版本 (例如 - 1.1.0、~1.2.3) 。 有关 更多详细信息, 请参阅 CLI 文档。 选择 " 继承"将保留这些属性未修改。 默认 继承。
必需*(布尔)* - 指定是否应当将此版本视为必需版本。 选择 " 继承 " 将不修改这些特性。 默认值为 " 继承"。
禁用 (布尔) -指定是否应立即下载此版本。 选择 " 继承 " 将不修改这些特性。 默认值为 " 继承"。
CodePush-升级
允许你将以前发布的更新从一个部署升级到另一个 (例如,过渡 -> 生产) ,并支持使用 Azure DevOps Release Management从 CI 环境轻松处理多个应用环境。 此任务的行为与 appcenter codepush promote 管理 CLI 中的命令等效,并包括以下选项:
身份验证方法 -指定要如何通过 CodePush 服务器进行身份验证。 可用选项是:
访问令牌 -允许你直接指定任务的访问令牌。 此值可以是由 CodePush CLI 生成的,也可以由 App Center 门户在 autoprovisioned 你的帐户和应用后提供给你。
服务终结点 (CodePush) -允许引用全局配置的 CodePush 服务终结点。
服务终结点 (HockeyApp) -允许引用全局配置的 HockeyApp 服务终结点。
应用所有者/应用名称 (字符串,必需的) -具有要进行升级的部署的应用的名称 (例如
<ownerName>/MyApp-iOS) 。源部署 (字符串) -要从中升级最新版本的部署的名称。 默认值为 " 过渡"。
目标部署 (字符串) -要将发布升级到的部署的名称。 默认为 生产。
更新元数据
默认情况下,当发布从一个部署升级到另一个部署时,新创建的版本不仅会继承更新内容,还会 "继承" (例如 description) 。 这可确保要提升的与在源部署中测试的完全相同。 但是,如果要在目标部署中重写新创建的版本中的一个或多个属性 (例如,由于在环境环境) ,可以使用 mandatory 以下字段:
推出*(字符串)* - 此版本应立即可供用户使用的百分比。 默认为
100%说明*(字符串)* - 此版本中对应用所做的更改的说明。 选择 " 继承"将使用正在提升的版本中的说明。 在发布定义中Azure DevOps此任务时,可以将此字段设置为 变量,以继承为发布
$(Release.ReleaseDescription)提供的说明。 默认 继承。目标二 (字符串) Semver 表达式,指定此版本面向的二进制应用版本 (例如 - 1.1.0、~1.2.3) 。 选择 " 继承"将使用正在提升的版本中的目标二进制版本属性。 默认 继承。 有关 更多详细信息, 请参阅 CLI 文档。
必需*(布尔)* - 指定是否应当将此版本视为必需版本。 选择 " 继承"将使用要提升的版本中的必需属性。 默认 继承。
已禁用*(布尔)* - 指定是否应该立即下载此版本。 选择 " 继承"将使用正在提升的版本中禁用的属性。 默认 继承。