频道是管理应用程序更新的方式。每个频道可以有一个版本。这使您可以在生产环境中同时拥有多个应用程序版本。

频道

如何Capgo选择频道(优先顺序)

标题:如何Capgo选择频道(优先顺序)

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

  1. 强制设备映射: 如果设备 ID 被明确强制到一个频道(请参见频道设置中的 强制设备 列表),那么这个频道总是会获胜。
  2. Cloud 强制(由 setChannel() 或 Webapp 动作创建): 调用 setChannel (或在控制台更改设备的频道) 会在云端为该设备 ID 写入一个持久的覆盖配置。该覆盖配置在强制映射之后、但在任何默认值之前被咨询。重新安装应用程序不会清除它;删除设备条目会清除它。 清除它。
  3. Capacitor 配置 defaultChannel (测试构建默认值): 对于内部/测试/测试构建,您可以设置 defaultChannel (旧键 channel) 在 capacitor.config.* 中,以便测试设备从预发布频道开始(例如 beta, pr-123).如果缺失,设备将继续使用云端默认值。生产构建通常会将其设置为未设置。
  4. 云端默认频道(~99% 用户的主要策略):大多数真实用户都会到达的主要生产频道。没有强制、无需覆盖和无需配置的新设备都使用这个。改变它会在秒钟内对所有人进行发布(或回滚)—无需新二进制文件。 defaultChannel 为什么是

云默认 是主要路径: 秒级发布或回滚,无需重建或重新发布原生二进制文件。

  • 一个地方管理iOS、Android和Electron行为。
  • 更安全:您可以在切换默认之前确认包存在并且设置正确。
  • 可审计的更改(团队成员可以在UI/日志中看到谁改变了什么)。
  • 设计原则: 异常 (单独调试用户、QA切换、测试构建默认值)。正常用户流向云默认。

改变 云端默认 通道影响 正常设备:

  • 不被强制
  • 没有已经有一个云端覆盖
  • 没有一个应用级别 defaultChannel 定义

如果一个测试构建带有 defaultChannel: 'beta' 并且您稍后改变云端默认到 production设备在 beta 通过配置启动的,直到您:(a)通过 setChannel()(a)让它们继续使用当前频道,(b)强制它们切换到另一个频道,或者(c)删除设备条目。

设备除非你:

  • 强制它们切换到另一个频道。
  • 拨号 setChannel() (创建/替换云端覆盖)或在控制台手动修改。
  • 移除/归档它们当前的频道(然后它们会在下一次检查时通过顺序重新选择)。

如果一个频道在某个平台上被禁用(见iOS/Android/Electron开关),而它原本会被选择,那么选择会跳过它并跳到下一个规则。

注意: defaultChannel 意味着修改它需要重新编译二进制;请在测试/QA环境中使用它,而不是在生产环境中。

Capacitor配置示例

Capacitor配置示例
capacitor.config.ts
// Example: a TestFlight or internal QA build defaults to the beta channel.
const config = {
plugins: {
Capgo: {
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它无法更改或删除现有的默认/主通道、另一个预览密钥的通道或另一个密钥的包。请参见 API 密钥 管理一个通道

在图像中3 管理一个通道

频道设置

频道设置页面包含了所有频道配置选项。让我们逐一检查每个设置。


首先是 Default channel 开关。启用后,这个频道将成为新设备的默认频道。有关默认频道的详细说明,包括如何设置平台特定的默认频道(一个用于iOS,一个用于Android,一个用于Electron),请参见 默认频道配置 部分。


第二是 IOS 设置。这很简单。如果这个设置为false,则iOS设备将无法从这个频道下载更新。

第三是 Android 设置。这与 IOS类似。如果这个设置为false,则Android设备将无法从这个频道下载更新。

第四是 Electron 设置。 这与 IOSAndroid。 如果此项为 false,则 Electron 应用程序将无法从此频道下载更新。

第五是 Disable auto downgrade under native 设置。 如果此项为 true,则将无法从原生版本降级。这意味着,如果您已上传应用程序到应用商店或 Google Play 商店,并尝试将频道版本设置为 1.2.0 则更新(降级)将失败。 1.1.0 第六是

。 这个设置相当复杂,您可以在这里 Disable auto update关于 。 如果此项为 true,则开发版将允许从此频道下载更新。如果不,则任何更新请求都将被拒绝,除非请求中包含

__CAPGO_KEEP_0__ Allow development build__CAPGO_KEEP_1__ prod 设置为 false 会被拒绝。这主要适用于测试目的。

第七是 Allow Emulators. If this is false then Capgo will disallow any update request that comes from an emulator. This is mostly useful for testing purposes.

如果这是 false,则 __CAPGO_KEEP_0__ 将拒绝任何来自模拟器的更新请求。这主要适用于测试目的。 Allow devices to self associate第八是 setChannel 如果这是 true,则 方法将可用。如果设置为 false 并尝试使用此频道调用 方法,则调用将失败。

频道 信息 tab包含一个 渐进式发布 部分。设置目标包,选择百分比和决策缓存持续时间,然后启用发布。从同一部分,您可以暂停或恢复曝光,促进目标到稳定,回滚或配置自动暂停,回滚或通知,当失败信号超过阈值时。

渐进式发布控制在Capgo频道中
渐进式发布控制出现在频道信息tab的顶部。

阅读 渐进式发布 在启用之前阅读一下。它解释了粘性小组,安全百分比变化和自动暂停行为。

如果您正在使用 频道 为计划频道路由和阶段性发布,连接它 频道 频道 频道 频道 beta测试解决方案 为beta测试解决方案中的产品工作流程 版本目标解决方案 为版本目标解决方案中的产品工作流程 Capgo 环境最佳实践:使用一个移动应用ID进行分阶段 为Capgo 环境最佳实践:使用一个移动应用ID进行分阶段中的实际上下文