__CAPGO_KEEP_3__

频道

如何Capgo选择频道(优先级)

如何Capgo选择频道(优先级)

当设备要求Capgo进行更新时,使用的频道将按照以下顺序(优先级最高)决定:

  1. 强制设备映射:如果设备 ID 被明确强制到一个频道(频道页面上的 设备 tab),那么这个频道总是会获胜。强制映射是控制台/API的覆盖。Capgo会在最后一次覆盖写入后 90 天后删除它们。请参见 控制台和API覆盖.
  2. 云覆盖(控制台或公共API): 在仪表板或公共API中更改设备的频道会写入一个与该设备ID相关的覆盖。重新安装应用程序不会清除它;删除覆盖会清除它。同样适用于90天的保留期。 不 不
  3. 插件 setChannel() (本地): 当前插件版本上存储设备频道后台验证后。它不是仪表板覆盖。重新安装应用程序会清除它;应用程序必须再次调用以获取该频道。 setChannel() __CAPGO_KEEP_0__配置 setChannel() (测试构建默认值)
  4. Capacitor 配置 defaultChannel (遗留密钥__CAPGO_KEEP_0__ defaultChannel __CAPGO_KEEP_0__ channel)在 capacitor.config.* 因此测试设备从预发布频道开始(例如 beta, pr-123)。如果缺失,设备将继续使用云默认值。生产构建通常会将其设置为未设置。
  5. 云默认频道(99%用户的主要策略):所有实际用户的主要生产频道。任何新设备,无强制,无覆盖,无本地 setChannel(),和无配置 defaultChannel 使用此频道。更改它会在秒级内,对所有人进行推出(或回滚),无需新二进制文件。

为什么 云默认 是主要路径:

  • 秒级推出或回滚,无需重建或重新发布原生二进制文件。
  • 一处管理iOS、Android和Electron行为。
  • 更安全:您可以在切换默认之前确认捆绑包存在并设置正确。
  • 可审计的更改(团队成员可以在 UI / 日志中看到谁修改了什么)。 设计原则:上层(强制 / 覆盖 / 配置)是 异常 (调试单个用户,QA切换,测试构建默认值)。正常用户流向云端默认。

更改 云端 频道会影响 新 正常设备:

  • 不被强制
  • 没有已有的云端覆盖
  • 没有应用级 defaultChannel 定义

如果测试构建带有 defaultChannel: 'beta' 并且您稍后将云默认值更改为 production设备在 beta 通过配置 defaultChannel通过配置 setChannel() 删除强制、云覆盖或本地

设备将保持其当前频道,除非您:

  • 强制将其转移到另一个频道(控制台或公共API)。
  • 更改云覆盖(控制台或公共API)。
  • Call setChannel() 本地分配(当前插件版本)。
  • 移除/归档他们当前的频道(然后他们将在下一次检查时重新通过优先顺序)。
  • 等待一个控制台/API 超时过期后 90 天。
  • 重新安装应用程序,清除本地 setChannel() assignment 但不清除控制台/API 超时。

如果一个频道在一个平台上被禁用(见 iOS / Android / Electron 切换开关),并且将否则被选择,那么选择将跳过它并跳转到下一个规则。

注意:设置 defaultChannel 意味着改变它需要一个新的二进制文件;请在测试/QA 中有意使用它,而不是在一般生产控制中。

Capacitor 配置示例

Capacitor 配置示例
capacitor.配置文件
// Example: a TestFlight or internal QA build defaults to the beta channel.
const config = {
plugins: {
CapacitorUpdater: {
defaultChannel: 'beta', // Test build default. Omit in production so users attach to cloud default.
// legacy key: channel
},
},
};
export default config;

如果您稍后改变仪表板的默认值到 production, 设备已经在另一个频道上(通过配置、覆盖或强制)不会自动移动;只有新设备(或您清除的覆盖/强制)才能接收它。


管理频道

管理频道

首先,让我们来看看频道页面。您可以通过点击 点击您的应用 然后 点击频道选项卡.

频道列表

创建频道

管理频道

创建频道1 如图所示,在下右角有一个加号按钮。 (

新频道

然后点击后 Add 应该在列表中出现一个新频道。

创建频道后

什么是配置错误?

标题:什么是配置错误?

有时频道的配置不是有效的。在这种情况下,您将获得一个大警告,列中会显示 Misconfigured 列中会显示 Yes 对于一个或多个频道。 您可以在这里了解更多 删除频道

标题:删除频道

here

要从 web 应用程序中删除一个频道,请打开 频道 删除频道 删除 频道行 删除 如果垃圾桶图标不可见,则您的帐户没有为该应用程序授权删除频道的权限。请向组织或应用程序管理员请求授权角色以删除频道,或使用具有删除频道权限的__CAPGO_KEEP_0__密钥删除频道:

终端窗口

复制到剪贴板 channel.delete permission for that app. Ask an organization or app admin to grant a role that can delete channels, or delete the channel with an API key that has permission:

删除频道
npx @capgo/cli@latest channel delete <channel-name> <app-id>

一个组织和应用绑定的 应用预览 密钥可以原子性地删除仅非公共预览频道和与其创建的捆绑包。它无法更改或删除现有的默认/主频道、另一个预览密钥的频道或另一个密钥的捆绑包。请参见 channel delete <preview-channel> <app-id> --delete-bundle__CAPGO_KEEP_0__ 密钥 API 键 管理频道

点击频道名称以打开频道页面。它是一个带有标签的全屏页面,而不是模态窗口。

频道设置

频道标签

频道标签
  • 控制台: 当前频道的当前捆绑包和安装统计。
  • 信息: 以下频道设置,包括渐进式发布和测试更新 API。
  • 设备: 由控制台或公共 API 创建的强制映射。它不列出当前频道上的所有设备,也不列出曾经使用过的设备。 setChannel()查看 控制台和API配置项过期.
  • History历史
  • : 本频道的设置和捆绑包变更。预览 应用信息 首先。

信息设置

信息设置部分

在此处停留。 信息 在此选项卡中,设置按以下顺序显示:

首先 默认下载频道 这是一个状态徽章,而不是开关。 激活 表示此频道是云端的默认频道,适用于新设备。点击 管理应用设置 更改默认值 应用信息. 在 iOS、Android 和 Electron 平台的默认值中,请参见同一部分。

第二个设置 IOS 如果此值为 false,则 iOS 设备将无法从此频道下载更新。

第三个设置 Android 如果此值为 false,则 Android 设备将无法从此频道下载更新。

第四个设置 Electron 如果此值为 false,则 Electron 应用将无法从此频道下载更新。

第五个设置 Disable auto downgrade under native 如果此值为 true,则无法从原生版本降级。这意味着如果您已上传一个 1.2.0 将版本发布到应用商店或Google Play商店,并尝试将渠道版本设置为 1.1.0 然后更新(降级)将失败。

第六是 Disable auto update。这个设置相当复杂,您可以在这里学习更多关于它 这里

第七是 Download format 设置。它选择设备下载完整的zip文件,仅更改的delta文件,还是两者兼而有之。请参见 下载格式.

第八是 Allow development build。如果为真,则允许开发者构建下载此渠道的更新。如果不为真,则任何更新请求都将被拒绝,且设置为false的请求将被拒绝。这主要用于测试目的。 prod 第九是

第十是 Allow production build如果这个值为 false,那么生产环境(商店)构建将不会从这个频道接收更新。请在为真实用户服务的频道上保留这个设置。

第十是 Allow Emulators如果这个值为 false,Capgo 将会拒绝来自模拟器的任何更新请求。这主要用于测试目的。

第十一是 Allow physical devices如果这个值为 false,Capgo 将会拒绝来自真实手机和平板电脑的更新请求。请在生产频道上保留这个设置。

第十二是 Allow devices to self dissociate/associate如果这个值为 true,那么将会启用 设置频道 方法。如果这个值设置为 false,并且您尝试使用这个频道调用 设置频道 将会失败。

测试更新 API

Section titled “API”

底部的 信息 展开 API. Capgo 展示了一个 curl 命令,针对本频道的示例设备。 /updates 为此频道上的一个示例设备。

Changes can take up to 60 seconds to show in the API because of caching. If the channel cannot be tested, the console warns you: the channel needs at least one platform (iOS or Android), production builds, physical devices, and either to be the default download channel or to allow device self-assignment.

Section titled “发送更新通知”

您更改关联的捆绑后,控制台可能会要求

发送更新通知 Section titled “发送更新通知”。该队列一个静默推送,设备在该频道上检查新包现在。首先在应用通知标签上配置Android和iOS推送凭证。

控制台和API覆盖物过期

标题:控制台和API覆盖物过期

强制映射和仪表盘/公共API频道覆盖物被移除 90天 最后一次覆盖写入后90天。最后一次设备登录不会重置时钟。为了让一个生存的赋值,设置 defaultChannel 在您的Capacitor配置(生存重新安装,需要一个新的二进制文件来改变)或从应用中调用 setChannel() (避免了90天的清理,但重新安装会清除它,所以应用必须再次调用)。 setChannel() again).

Capgo频道设备选项卡显示覆盖保留弹出窗口:控制台覆盖将在90天后过期
这是与

独立于 设备清单保留. 清单移除未连接至Capgo的设备90天。覆盖清理移除设备映射,即使设备仍处于活动状态。详细信息: 控制台和API覆盖清理90天后过期.

下载格式

下载格式

打开一个频道并停留在 信息 选项卡。 下载格式 在设置列表中,下拉到禁用自动更新。

Download format dropdown on a Capgo channel showing Zip + delta, Full zip only, Delta only, Full zip from store build only, and Delta from store build only
频道信息选项卡上的下载格式。新频道默认为Zip + delta。

此设置决定 Capgo 在设备检查更新时发送什么。请勿更改 压缩 + 差异 除非你需要强制使用一种类型

控制台中的标签CLI / API 值设备下载的内容
Zip + delta (默认)all每个设备下载它支持的最佳包。设备在具有Delta支持的插件版本上下载仅更改的delta文件,当包中有它们时。只有在没有delta文件的包上传或在旧的插件版本上没有Delta支持的设备,才会回退到完整的zip。
仅全zipzip每个设备下载整个包zip,即使有delta文件存在。
仅deltadelta仅更改的delta文件。设备在旧的插件版本上没有Delta支持时仍然会接收到完整的zip,当包中有一个时。
全店铺构建的压缩包zip_from_builtinFull zip only while the device is still on the store build. After the first live update, Capgo serves zip + delta again.
仅从店铺构建下载的deltadelta_from_builtinDelta only while the device is still on the store build. After the first live update, Capgo serves zip + delta again.

带 zip + delta,下载全压缩包是正常的。它们来自仍在运行旧版本地构建的设备,且该设备上的插件版本没有delta支持(以下版本) 5.10.0, 6.25.0,或 7.0.35 对于 delta更新.

店铺构建 店铺构建 是 App Store 或 Play Store 二进制文件中包含的 Web 资产,之前任何 Capgo 更新。使用一个 from store build only 模式,当第一次从商店构建的更新应该是全压缩包或增量包,后续更新可以使用两种方式。

Capgo 将不会将仅压缩包的频道与仅增量包的捆绑包配对,或者反之。控制台、CLI 和频道 Capgo Channels API 拒绝保存并告诉您需要上传缺失的包或切换模式。

您可以从 CLI 中设置相同的值。频道必须已经存在:

终端窗口
npx @capgo/cli@latest channel set production com.example.app --update-package zip

有效值: all, zip, delta, zip_from_builtin, delta_from_builtin.

渐进式发布

渐进发布

渠道 信息 tab包含一个 渐进式发布 部分包含 发布目标 和 稳定fallback, 更改发布目标, 应用百分比, 和操作 完成发布, 回滚发布, 启用发布, 禁用发布, 暂停发布, 和 恢复发布.

Capgo 渠道中的渐进发布控制
渐进发布控制在渠道信息标签页的顶部出现。

阅读 渐进发布 context页面/区域: Capgo 解决方案营销页面。角色: 短 UI 标签或导航项。见于: 页面 solutions/cordova-to-capacitor.astro。消息键 `solutions_cordova_to_capacitor_link_rollouts` (解决方案 Cordova 到 Capacitor 链接发布)。 / 在启用之前阅读一下。该指南涵盖了上传路由( / 替换稳定版; CLI --stable / API target: "stable" 以此覆盖) 该频道使用渐进式发布 包链接对话框,以及一个安全的工作流程 观察 and 和.

context:Capgo营销网站. 角色: 短UI标签或导航项. 见于: 页面 trust.astro. 消息键 `and` (和).

日志洞察

从频道继续前进 频道 为规划频道路由和阶段性发布,连接它 频道 详细信息请参阅频道 频道 详细信息请参阅频道 Beta 测试解决方案 详细信息请参阅 Beta 测试解决方案 版本目标解决方案 详细信息请参阅版本目标解决方案 Capgo 环境最佳实践:使用一个移动应用 ID 进行分期 详细信息请参阅 Capgo 环境最佳实践:使用一个移动应用 ID 进行分期