频道
复制一个配置提示,包括安装步骤和此插件的完整 Markdown 指南。
实时更新频道指向您的应用程序的特定 JS 包装构建,这将与任何配置为监听该频道的设备共享。 当您 install the Capgo Live Updates SDK 频道不提供保密性
Section titled “设备如何选择频道(优先顺序)”
当设备检查更新时,__CAPGO_KEEP_0__会在以下严格顺序(最高优先级)中选择频道:When a device checks for an update, Capgo decides which channel to use in this strict order (highest priority first):
- – 手动将特定设备 ID 附加到频道。适用于紧急调试或受控测试与单个真实用户。这个总是获胜。 install the __CAPGO_KEEP_0__ Live Updates __CAPGO_KEEP_1__
- Cloud override (per-device) via Dashboard 或 API – 当您在控制台或通过 API 更改设备的频道时创建。用于 QA 用户在特性 / PR 频道之间切换或重现用户问题。重新安装二进制文件不会清除它;删除设备条目。
- 插件
setChannel()本地频道 – 当应用程序调用并且后端验证目标频道允许自我赋值时创建。所选频道在该设备上存储在本地,立即生效,并不显示在设备覆盖 UI 中。setChannel()使用 setChannel() 实现即时频道切换
- Capacitor config
defaultChannel(test build default) __CAPGO_KEEP_0__配置capacitor.config.*(测试构建默认值)beta,qa,pr-123– 如果在 - 中存在,并且没有强制/覆盖/本地频道,则应用程序以此频道启动(例如,)。 – If you mark a default channel in the dashboard, all normal end‑users (no force, no Dashboard/API override, no plugin local channel, no config defaultChannel) attach here. Change it to roll out or roll back instantly—no new binary. If you have platform-specific defaults (for example, one iOS-only, one Android-only, one Electron-only), each device lands on the default matching its platform. Leaving the cloud default unset is allowed; in that case the device must match on steps 1–4 to receive updates.
最佳实践:
- 将 1–4 视为异常/测试层;当您设置一个云默认值时,真实用户应该流入它。如果您选择不设置一个,请务必明确用户如何附加(通常通过
defaultChannel在配置或设备级别的覆盖中)。 - 仅在
defaultChannel您明确向测试者分发的二进制文件中配置。 - 未设置它会将生产逻辑集中在仪表板中。
setChannel()仅在生产中
sparingly 使用—主要用于 QA 或目标诊断。
Summary: Force > Dashboard/API Override > Plugin
setChannel()摘要: 强制 > 仪表板/__CAPGO_KEEP_0__ Override > 插件defaultChannel本地通道 > 配置
> 云默认值。
Default Channel 行为设置云端默认值是可选的,但通常作为新设备的通用路径。没有一个,仅匹配强制映射、覆盖或 defaultChannel 在Capacitor配置中的设备才能接收更新。当您选择标记默认值时,请记住这些模式:
- 单个默认值(最常见) – 如果一个通道启用了 iOS、Android 和 Electron,则成为唯一的默认值;没有覆盖的设备将附加到这里。
- 平台特定默认值 – 如果按平台分离通道(例如,
ios-production仅启用 iOS,android-production仅启用 Android,electron-production仅启用 Electron),则标记每个平台的默认值。iOS 设备将前往 iOS 默认值,Android 设备将前往 Android 默认值,Electron 应用将前往 Electron 默认值。
请记住,云端默认值和 defaultChannel 在 capacitor.config.* 同一决策层中都占据着。 如果您设置了云端的默认值,那么您不需要在您的Capacitor配置中重复该值—留空 defaultChannel 留空用于生产构建。 预留 defaultChannel 用于您希望测试人员或QA在非生产通道上启动的二进制文件,即使云端的默认值不同。
您可以在任何时候在控制台中更改默认值。 当您切换默认值时,新设备立即遵循新的路由,现有设备在下一次检查时遵循正常的优先级规则。
设置通道
标题:设置通道在入职过程中,您创建了第一个通道(大多数团队将其命名为“生产”),但没有任何锁定—you可以随时重命名或删除任何通道。 要添加额外的通道:
- 转到Capgo控制台的“通道”部分
- 点击“新建通道”按钮
- 输入通道名称并点击“创建”
通道名称可以是您喜欢的任何内容。 一种常见的策略是将通道与开发阶段匹配,例如:
Development-用于在本地设备或模拟器上测试实时更新QA- 为您的 QA 团队验证更新之前更广泛的发布Staging- 在生产环境中进行最终测试Production- 为应用商店向用户发布的应用程序版本
配置应用中的通道
标题:配置应用中的通道创建了通道后,您需要配置应用程序以监听适当的通道。在本例中,我们将使用 Development channel.
打开您的 capacitor.config.ts (或 capacitor.config.json)文件。 在 plugins 部分下, optionally 设置 defaultChannel __CAPGO_KEEP_0__ 测试构建 (内部/测试环境). 对于生产环境,建议省略它,以便设备使用 Cloud Default,除非显式覆盖。
import { CapacitorConfig } from '@capacitor/cli';
const config: CapacitorConfig = { plugins: { CapacitorUpdater: { // For a QA/TestFlight build – testers start on the Development channel automatically. defaultChannel: 'Development', // Production builds usually omit this so users attach to the Cloud Default channel. }, },};接下来,构建您的 Web 应用并运行 npx cap sync 以将更新的配置文件复制到您的 iOS、Android 和 Electron 项目中。如果您跳过此同步步骤,native 项目将继续使用之前配置的渠道。
频道选项和策略
频道选项和策略频道有几个选项来控制谁可以接收更新以及如何分发更新。最重要的有以下几个。您可以从Web应用程序、CLI或公共API中配置这些选项。
- 默认频道:可选地标记新设备附加的频道或平台特定的频道。请参阅“默认频道行为”以了解路由场景。
- 平台过滤器:启用或禁用向
iOS,Android、或Electron设备/频道 - 禁用原生下降:防止在设备的原生应用程序版本新于频道的包装时发送更新(例如,设备在1.2.3版本,而频道有1.2.2版本)。
- 允许开发版本:允许更新开发版本(用于测试)。
- 允许模拟器设备:允许更新模拟器/模拟器(用于测试)。
- 允许设备自行分配:让应用程序在运行时切换到此通道使用
setChannel如果禁用,setChannel将在此通道上失败。
禁用自动更新策略
标题:禁用自动更新策略使用此选项来限制哪种类型的更新将自动分发。选项:
- major:阻止目标包的主要版本号高于设备本地基线(
version_build)的包。示例:1.2.3 -> 2.0.0将被阻止;1.2.3 -> 1.9.0将被允许。 - minor:阻止目标包的主要或次要版本号与
version_build不同。示例:1.2.3 -> 1.3.0is blocked;1.2.3 -> 1.2.4is allowed. - patch: 最严格模式。阻止任何对主版本、次版本或修订版本号的修改。仅允许后缀修改,
MAJOR.MINOR.PATCH保持不变。例如:1.0.0-beta.1 -> 1.0.0-beta.2是允许的,1.0.0+build.1 -> 1.0.0+build.2是允许的,1.0.0 -> 1.0.1是被阻止的. - metadata: 每个捆绑包都需要最低更新版本的元数据。通过CLI使用
--min-update-version或--auto-min-update-version配置。如果缺失,通道将被标记为不配置,更新将被拒绝直到设置。 - none: 根据 兼容性允许所有更新.
这些策略将渠道的目标包与原生基线进行比较,后者作为 version_build,而不是当前下载的包作为 version_name.
了解更多详细信息和示例,请参见 /docs/cli/commands/#disable-updates-strategy 中的 Disable updates strategy 部分。
示例(CLI):
# Block major updates on the Production channelnpx @capgo/cli@latest channel set production com.example.app \ --disable-auto-update major
# Allow devices to self-assign to the Beta channelnpx @capgo/cli@latest channel set beta com.example.app --self-assign使用 setChannel() 从您的应用程序
标题为“使用 setChannel() 从您的应用程序”The setChannel() 方法允许您的应用程序在运行时程序性切换渠道。这在以下情况下特别有用:
- QA/调试菜单,测试人员可以在其中切换渠道
- Beta 程序的优惠流程
- 功能标志实现
- A/B 测试场景
import { CapacitorUpdater } from '@capgo/capacitor-updater';
// Switch to the beta channelawait CapacitorUpdater.setChannel({ channel: 'beta' });
// Optionally trigger an immediate update check after switchingawait CapacitorUpdater.setChannel({ channel: 'beta', triggerAutoUpdate: true});分配一个包到一个频道
Section titled “分配一个包到一个频道”为了部署一个实时更新,您需要上传一个新的 JS 包构建并分配它到一个频道。您可以在一步完成这个过程使用 Capgo CLI:
npx @capgo/cli@latest bundle upload --channel=Development这将上传您的构建的 Web 资产并将新的包设置为频道的活动构建。任何配置为监听该频道的应用将在下一次检查更新时接收到更新. Development 您也可以从 __CAPGO_KEEP_0__ 的“包”部分分配构建到频道。点击一个构建旁边的菜单图标并选择“分配到频道”来选择该构建的频道.
You can also assign builds to channels from the “Bundles” section of the Capgo dashboard. Click the menu icon next to a build and select “Assign to Channel” to choose the channel for that build.
Section titled “包版本和频道”
需要注意的是,__CAPGO_KEEP_0__ 中的包是全局的,针对您的应用,而不是针对个别频道的。同一个包可以分配到多个频道。It’s important to note that bundles in Capgo are global to your app, not specific to individual channels. The same bundle can be assigned to multiple channels.
当打包版本时,我们建议使用 语义版本控制与Capgo的Semver Tester 并使用预发布标识符为渠道特定构建。例如,一个beta版本可能被版本化为 1.2.3-beta.1.
这种方法有几个好处:
- 它清晰地表明了构建之间的关系。
1.2.3-beta.1显然是1.2.3. - 的前期版本。
- 它允许在渠道之间重用版本号,减少混淆。
1.2.3它使回滚路径清晰。如需从1.2.2回滚到
,您就知道
Development这是上一个稳定版本。1.2.3-dev.1,1.2.3-dev.2使用QA频道:1.2.3-qa.1,1.2.3-qa.2,等等。Staging频道:1.2.3-rc.1,1.2.3-rc.2,等等。Production频道:1.2.3,1.2.4,等等。
使用 使用预发布标识符的semver方法是推荐的,但并非严格要求。关键是找到一个清晰地表达您构建之间关系的版本控制方案,并且与您的团队的开发流程保持一致。 回滚一个正在运行的更新
标题:回滚一个正在运行的更新
__CAPGO_KEEP_0__如果您部署的实时更新引入了错误或需要回滚,
- 您可以轻松地回滚到之前的构建。从仪表板的“频道”部分:
- 点击您要回滚的频道名称

- 回滚构建
确认操作
所选构建将立即成为该频道的活动构建。应用程序将在下一次检查更新时接收回滚的版本。
自动化发布For more advanced workflows, you can automate your live update deployments as part of your CI/CD pipeline. By integrating Capgo into your build process, you can automatically upload new bundles and assign them to channels whenever you push to certain branches or create new releases.
对于更高级的工作流程,您可以将实时更新的发布自动化为您的CI/CD管道的一部分。通过将__CAPGO_KEEP_0__集成到您的构建过程中,您可以自动上传新包并将其分配到频道,任何时候您推送到特定分支或创建新发布时。 查看 docs to learn more about automating Capgo live updates.
在设备上部署
设备部署现在你理解了通道,你就可以开始在真实设备上部署实时更新了。基本流程是:
- 在你的应用中安装 Capgo SDK
- 配置应用以监听你的所期望的通道
- 上传一个构建并将其分配到该通道
- 启动应用并等待更新!
如果你想了解更多详细的步骤,请参阅 实时更新 部署指南。更新快乐!
高级通道使用:用户分段
高级通道使用:用户分段Channels可以用来做更多的事情,除了开发阶段。它们是一种强大的工具,用于用户分段,支持功能,如:
- 不同用户等级的功能标志
- A/B测试
- 逐渐发布功能
- 测试计划
了解如何在我们的指南中实现这些高级用例: 如何根据计划和通道对用户进行分段,用于功能标志和A/B测试.
继续从Channels
标题为“继续从Channels”如果您正在使用 Channels 规划通道路由和分阶段发布,连接它 频道 关于频道的实现细节 频道 关于频道的实现细节 Beta 测试解决方案 关于 Beta 测试解决方案的产品工作流程 版本目标解决方案 关于版本目标解决方案的产品工作流程 Capgo 环境最佳实践:使用一个移动应用 ID 进行分期 关于 Capgo 环境最佳实践:使用一个移动应用 ID 进行分期的实际背景