跳过内容

通道

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

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

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

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

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

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

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

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

如果测试构建带有 defaultChannel: 'beta' 并且您稍后将云默认值更改为 production设备在 beta 通过配置启动的 defaultChannel通过配置启动的设备将保持原有频道,直到更高优先级的分配生效,或者您发布一个 setChannel() 删除强制、云覆盖或本地

赋值不会删除配置值;该回退值将保持到新二进制文件。

  • Force them to another channel (console or Public API).
  • 强制将它们转移到另一个频道(控制台或公共API)。
  • 在控制台或公共__CAPGO_KEEP_0__中更改云覆盖值。 setChannel() (本地分配在当前插件版本上).
  • 移除/归档他们当前的频道(然后他们将在下一次检查时再次通过顺序降级).
  • 等待一个控制台/API 超时过期后 90 天.
  • 重新安装应用程序,清除本地 setChannel() 分配,但不清除控制台/API 超时.

如果一个频道在一个平台上被禁用(见 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: {
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 对于一个或多个频道。 您可以在这里了解更多。 删除频道

要从 web 应用中删除一个频道,请打开 频道 上下文:Capgo 发布频道功能名称。页面/区域:Capgo 解决方案营销页面。角色:短 UI 标签或导航项。见于:页面解决方案/白标签.astro。消息键 `solutions_white_label_visual_cell2_value` (解决方案白标签视觉单元2 值)。 频道 动作 删除

删除频道

如果垃圾箱图标不可见,则您的帐户没有为该应用程序分配删除频道的权限。请向组织或应用程序管理员请求分配一个可以删除频道的角色,或者使用具有权限的 __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 Keys 频道管理

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

频道设置

频道标签

频道设置

频道标签

Channel tabs
  • 控制台当前频道的当前捆绑包和安装统计。
  • 信息: Channel settings listed below, plus progressive rollout and Test Update API.
  • 设备: Forced mappings created from the console or Public API only. It does not list every device currently on the channel, and it does not list devices that used setChannel()查看 Console and API overrides expire.
  • 历史预览
  • Test Update __CAPGO_KEEP_0__: 在浏览器和原生预览中查看链接包的预览。 在 App 信息 首先。

在上面。 信息 选项卡。 设置按以下顺序出现:

首先, 默认下载通道 是一个状态徽章,而不是一个切换按钮。 激活 表示该频道是新设备的云默认值。点击 在应用设置中 来改变默认值 应用信息。对于平台特定的默认值(iOS、Android 和 Electron),请参见同一部分。

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

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

Manage in App settings Electron App Information

For platform-specific defaults (one for iOS, one for Android, and one for Electron), see that same section. Disable auto downgrade under native 设置。如果这个值为真,那么就无法从原生版本降级。这意味着,如果您已经上传了一个版本到应用商店或Google Play商店,并尝试将渠道版本设置为__CAPGO_KEEP_0__,那么更新(降级)将会失败。 1.2.0 第六个是__CAPGO_KEEP_0__。这个设置比较复杂,您可以在这里了解更多关于它的信息。 1.1.0 第七个是__CAPGO_KEEP_0__。它决定设备是否下载一个完整的zip包,一个文件变更的delta,还是两者兼而有之。请参阅__CAPGO_KEEP_1__。

第八个是__CAPGO_KEEP_0__。如果这个值为真,那么开发者构建将允许从这个渠道下载更新。如果不为真,那么任何设置为false的更新请求都会被拒绝。这主要用于测试目的。 Disable auto update__CAPGO_KEEP_1__ __CAPGO_KEEP_0__

__CAPGO_KEEP_1__ Update package __CAPGO_KEEP_0__ __CAPGO_KEEP_0__.

__CAPGO_KEEP_0__ Allow development build__CAPGO_KEEP_0__ prod __CAPGO_KEEP_1__

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

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

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

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

在此处 信息 展开 测试更新 API. Capgo 显示了一个 curl 命令,针对此频道上的一个示例设备。 /updates 由于缓存,更新可能需要 60 秒才能在 __CAPGO_KEEP_0__ 中显示。如果无法测试频道,控制台会警告您:频道需要至少一个平台(iOS 或 Android)、生产版、物理设备以及要么是默认下载频道,要么允许设备自行分配。

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.

__CAPGO_KEEP_0__ 发送更新通知. 这会在设备上静默推送,设备会检查新的包。首先在应用通知选项卡中配置 Android 和 iOS 推送凭证。

控制台和 API 覆盖失效

标题:控制台和 API 覆盖失效

强制映射和 Dashboard/Public API 通道覆盖被移除 90 天 最后一次覆盖写入后 90 天。最后一次设备登录不会重置时钟。为了让赋值在清理后生存,请在您的 __CAPGO_KEEP_0__ 配置中(重新安装时生存,需要新二进制文件才能更改)或从应用中调用(避免 90 天清理,但重新安装会清除它,所以应用必须再次调用)。 defaultChannel Capacitor 通道设备选项卡显示的覆盖保留弹出窗口:控制台覆盖在 90 天后失效 setChannel() 通道设备选项卡上的覆盖保留。同样的提示会在您强制将设备 ID 强制到通道时出现。 setChannel() __CAPGO_KEEP_0__ 通道设备选项卡显示的覆盖保留弹出窗口:控制台覆盖在 90 天后失效

Capgo
__CAPGO_KEEP_0__

设备存储管理. Inventory removes devices that have not connected to Capgo for 90 days. Override cleanup removes the mapping even if the device is still active. Full detail: Console and API overrides expire after 90 days.

打开一个频道并停留在 信息 选项卡。 更新包 在设置列表中,位于禁用自动更新下。

一个Capgo频道上的更新包下拉菜单,显示Zip和delta,Zip only,Delta only,Zip only from builtin,和Delta only from builtin
在频道信息标签中更新包。新频道默认为Zip和delta。

此设置选择Capgo在设备在此频道检查更新时发送什么。除非您需要强制使用一种类型,否则请勿更改。 Zip和delta 在控制台中显示的标签

__CAPGO_KEEP_0__ / __CAPGO_KEEP_1__值CLI / API valueZip和delta
当存在时,下载一个完整的zip和一个delta。这是默认设置。all仅zip
仅下载完整的zip。zip仅delta
Zip和deltadelta仅更新的文件。无法应用delta的插件仍然会接收一个zip。
仅从内置的zipzip_from_builtin仅在设备仍在商店二进制上时才zip。第一次实时更新后,Capgo会再次提供zip和delta。
仅从内置的deltadelta_from_builtin仅在设备仍在商店二进制上时才delta。第一次实时更新后,Capgo会再次提供zip和delta。

内置 是指在App Store或Play Store二进制中内置的Web资产,任何Capgo更新之前。使用一个 from builtin 模式,当第一次从商店构建的更新应该是zip-only或delta-only时,后续更新可以使用两者。

Capgo不会将zip-only的频道与delta-only的包配对,或者反之。控制台、CLI和 频道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 通道
渐进式发布控制在频道信息标签页的顶部出现。

阅读 渐进式发布 在启用之前阅读一下。该指南涵盖了上传路由(自动(推荐) / 发布目标 / 替换稳定; CLI --stable / API target: "stable" 以覆盖其配置), 该频道使用渐进式发布 捆绑链接对话框和一个安全的工作流程 观察日志洞察.

继续从频道

频道

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