跳过主内容
教程

Capgo 环境最佳实践:使用一个移动应用 ID 进行分期

避免使用多个应用 ID 和易碎的运行时标志的实践指南,通过使用 Capgo 通道来实现分期、QA 和生产环境的分离,适用于 Capacitor 应用。

马丁·多纳迪厄

马丁·多纳迪厄

内容营销人员

Capgo 环境最佳实践:使用一个移动应用 ID 进行分期

团队通常会选择三种移动环境的方法:

  1. 两个应用 ID(生产 + 预生产)
  2. 一个应用 ID + 动态运行时环境切换
  3. 一个应用 ID + Capgo 通道

前两种方法可以工作,但它们会带来长期的摩擦。在实际团队中,Capgo 通道模型通常是最干净的。

为什么会出现多个应用 ID 的噪音

使用 com.myappcom.myapp.beta 看似简单,但您很快就会遇到重复:

  • 两个发布管道
  • 两个推送 ID、深度链接和权限映射
  • 两个分析和崩溃身份
  • 环境之间的配置和行为不一致

您最终需要管理两个产品,涉及商店控制台、团队和内部 QA 指令。

为什么运行时切换配置通常很混乱

通常情况下,“一个应用 ID + 运行时切换”模式意味着您的应用在启动时读取环境变量或标志并动态重新路由 API、密钥和更新行为。

这在开始时有效,但直到:

  • QA 开始绕过预期流程,因为配置状态过时
  • 生产环境中有人使用了错误的端点
  • 环境漂移导致复杂的bug难以复现
  • 你需要在用户设备上调试“这个二进制文件使用的是哪个配置版本?”

随着每次发布,复杂性会不断增加,这就是团队速度减慢的地方

The Capgo way: one app ID, many channels

Capgo makes environment control explicit through channels:

  • 在 App Store / Play 中只保留一个生产应用 ID
  • 直到原生代码发生变化需要重新编译为止,始终只编译一个原生二进制文件
  • 通过渠道来路由行为,而不是通过复制的应用标识

在实践中,这意味着:

  • production所有用户
  • staging内部 QA 和发布候选人
  • beta: 邀请测试者
  • hotfix: 紧急修复跟踪

您的 TestFlight/Play 内部测试应用程序可以永久保持在 staging 您可以在那里反复通过 Capgo 更新 JS/CSS/资产而无需发布新的原生应用程序。

1) 原生发布基线

您的最后一个原生二进制文件在多个 JS 迭代中保持不变:

bun run build
bunx cap sync
# generate Xcode/Android Studio archives as usual

您只在实际改变原生表面区域时重建原生二进制文件。

2) 为环境使用专用通道

使用通道发布更新:

bun run build
bunx @capgo/cli deploy --channel staging

在 QA 测试、修复问题后推广:

bunx @capgo/cli promote vX.Y.Z --channel production

如果您喜欢显式版本控制:

bunx @capgo/cli deploy vX.Y.Z --channel staging
bunx @capgo/cli promote vX.Y.Z --channel production

3) 保持 TestFlight “始终预发布”

在 iOS 工作流中,这意味着您的 TestFlight 构建可以与预发布更新关联:

  • 不频繁为每个 JS 变更提交本机更新。
  • QA 始终通过 staging 通道验证近生产 code。
  • 生产用户只接收推广的生产通道包。

4) 只在控制的工作流中使用通道切换

对于高级团队,暴露控制的通道切换给 QA/管理员用户:

import { CapacitorUpdater } from '@capgo/capacitor-updater';

await CapacitorUpdater.setChannel({
  channel: 'staging',
  triggerAutoUpdate: true
});

这不是必须的。 大多数团队使用仪表板中的通道 assignments,并且只在内部用户中切换通道,而不是所有客户。

运营检查表

  • 仅有一個應用程式 ID(無重複的生產/測試 ID)
  • 仅有一個基線本機建置管線
  • 通道映射文档(staging, beta, production, hotfix)
  • CI/CD 中的促销路径强制执行
  • 仅在真实原生变化时重建原生
  • 定期测试回滚

实际利益

这种方法可以移除环境漂移、减少构建混乱和加速修复:

  • QA 可以获得现实的二进制文件(没有假的“阶段应用”身份),
  • 您的 TestFlight 路径保持稳定
  • 您的团队避免了“两个应用 ID 债务”,
  • 您可以快速推送许多仅 JS 修复:Capgo

最终结果是更简单的治理: fewer artifacts、cleaner telemetry 和 fewer surprises 在发布操作中

继续从 Capgo Environment Best Practices: Staging with One Mobile App ID

如果您正在使用 Capgo 环境最佳实践:使用一个移动应用ID进行分阶段发布 连接它以 __CAPGO_KEEP_0__ __CAPGO_KEEP_0__ __CAPGO_KEEP_0__ __CAPGO_KEEP_0__ __CAPGO_KEEP_0__ Beta测试解决方案 了解Beta测试解决方案中的产品工作流程, 版本目标解决方案 了解版本目标解决方案中的产品工作流程。 __CAPGO_KEEP_0__

对 Capacitor 应用的实时更新

当有 web 层 bug 时,通过 Capgo 发布修复而不是等待 App Store 审批几天。用户在后台接收更新,而本机更改仍在正常审查路径中。

立即开始

博客最新文章

Capgo 给您创建真正专业移动应用所需的最佳见解。