跳转到内容

Channels

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

  1. 强制设备映射:如果设备 ID 被显式强制到某个通道(请参阅通道设置内的强制设备列表),则该通道始终获胜。
  2. 云覆盖(由 setChannel() 或 Webapp 操作创建):调用 setChannel (或更改仪表板中的设备通道)会在与该设备 ID 绑定的云中写入持久覆盖。在强制映射之后但在任何默认值之前都会参考该覆盖。重新安装应用程序不会清除它;删除设备条目即可。
  3. Capacitor 配置 defaultChannel(测试版本默认值):对于内部/测试版/测试版本,您可以在 capacitor.config.* 中设置 defaultChannel(旧密钥 channel),以便测试设备在预发布通道上启动(例如 betapr-123)。如果不存在,设备将继续使用云默认设置。生产版本通常不会设置此设置。
  4. 云默认频道(约 99% 用户的主要策略):几乎所有真实用户都会登陆的主要生产频道。任何没有强制、没有覆盖、没有配置 defaultChannel 的新设备都会使用它。更改它会在几秒钟内为每个人推出(或回滚)——无需新的二进制文件。

为什么云默认是主路径:

  • 即时推出或回滚,无需重建或重新发布本机二进制文件。
  • 一个地方可以管理 iOS、Android 和 Electron 行为。
  • 更安全:您可以在切换默认值之前确认捆绑包是否存在并且设置是否正确。
  • 可审核的更改(团队成员可以在 UI/日志中查看谁更改了哪些内容)。 设计原则:上面的层(强制/覆盖/配置)是例外(调试单用户、QA 切换、测试构建默认值)。普通用户默认流量到云端。

更改云默认通道会影响普通设备:

  • 不被强迫
  • 还没有云覆盖
  • 没有定义应用程序级 defaultChannel

如果测试版本附带 defaultChannel: 'beta',并且您稍后将云默认值更改为 production,则通过配置在 beta 上启动的设备将保留在那里,直到您:(a) 使用 setChannel() 覆盖它们,(b) 强制它们,或 (c) 删除设备条目。

设备会保留在当前频道,除非您:

  • 强迫他们到另一个频道。
  • 调用 setChannel() (创建/替换云覆盖)或在仪表板中手动更改它。
  • 删除/存档他们所在的频道(然后他们将在下次检查时再次回退到优先级)。

如果某个平台禁用了某个通道(请参阅 iOS / Android / Electron 切换)并且本来会选择该通道,则选择会跳过该通道并回退到下一个规则。

注意:设置 defaultChannel 意味着更改它需要新的二进制文件;有意将其用于测试/质量保证,而不是用于一般生产控制。

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`,则已在另一个通道上的设备(通过配置、覆盖或强制)将不会自动移动;只有新设备(或那些覆盖/强制您清除的设备)才会拾取它。
---
## 管理渠道
首先,让我们看一下频道页面。您可以通过[单击您的应用](/docs/webapp/main-page),然后[单击频道选项卡](/docs/webapp/main-app-page) 来访问它。
<figure><img src="/channels.webp" alt="频道列表" /><figcaption></figcaption></figure>
## 创建频道
正如你所看到的,右下角有一个加号按钮。 (图像中的`1`)单击它将打开一个模式,您可以在其中创建新通道。
<figure><img style="margin-left: auto; margin-right: auto" src="/new_channel_modal.webp" alt="新频道" /><figcaption></figcaption></figure>
然后,单击 `Add` 后,列表中应出现一个新频道。
<figure><img src="/post-channel-create.webp" alt="频道创建后" /><figcaption></figcaption></figure>
## 配置错误是什么意思?
有时通道的配置无效。在这种情况下,您将收到一条严重警告,并且 `Misconfigured` 列将为一个或多个通道显示 `Yes`。
您可以[此处]了解更多信息(/docs/cli/commands/#disable-updates-strategy)
## 删除频道
删除频道非常简单。只需单击垃圾桶图标并确认删除即可。 (图像中的`2`)
## 管理频道
单击通道名称将打开一个模式,您可以在其中管理通道设置。 (图像中的`3`)
<figure><img src="/channel_settings.webp" alt="频道设置" /><figcaption></figcaption></figure>
频道设置页面包含频道的所有配置选项。让我们逐一了解一下每个设置。
---
首先是“默认通道”切换。启用后,此通道将成为新设备的默认通道。有关默认通道如何工作的全面说明,包括如何设置特定于平台的默认值(一种用于 iOS、一种用于 Android、一种用于 Electron),请参阅 [默认通道配置](/docs/webapp/main-app-page/#default-channel-configuration) 部分。
---
第二个 `IOS` 设置。这个比较简单。如果这是 false,则 IOS 设备将不允许从此通道下载更新。
第三个是 `Android` 设置。这类似于 `IOS`。如果此值为 false,则不允许 Android 设备从此通道下载更新。
第四个是 `Electron` 设置。这类似于 `IOS` 和 `Android`。如果这是 false,那么 Electron 应用程序将不允许从此通道下载更新。
第五是“禁用本机下自动降级”设置。如果这是真的,那么就不可能从本机版本降级。这意味着,如果您已将 `1.2.0` 版本上传到应用商店或 Play 商店,并尝试将频道版本设置为 `1.1.0` ,则更新(降级)将会失败。
第六是“禁用自动更新”。 This setting is quite complex, and you can learn more about it [here](/docs/cli/commands/#disable-updates-strategy)至于“允许开发构建”。如果这是真的,那么开发版本将被允许从此通道下载更新。如果不是,则任何将 `prod` 设置为 false 的更新请求都将被拒绝。这对于测试目的最有用。
第七是“允许模拟器”。如果这是 false,则 Capgo 将不允许来自模拟器的任何更新请求。这对于测试目的最有用。
八是“允许设备自关联”。 If this is true then the [setChannel](/docs/plugin/api/#setchannel) method will be available.如果将此设置为 false 并且您尝试使用此通道调用 [setChannel](/docs/plugin/api/#setchannel) 方法,则调用将失败。