__CAPGO_KEEP_0__ - 为__CAPGO_KEEP_1__应用提供实时更新

迁移到 Capgo

⚡️ Capgo 自动化频道、捆绑清理、回滚、分析和 CLI 原生上传。使用本指南执行最小化的步骤来迁移并可选地重建任何您仍然需要的自定义行为。

  1. 收集您的现有 Capawesome 云配置(App ID、频道、签名密钥、 CLI 令牌)以便稍后存档或审计。
  2. 安装 Capgo 插件,移除 Capawesome SDK,并调用 CapacitorUpdater.notifyAppReady().
  3. 配置可选行为(手动下载、捆绑固定、重新加载)如果您依赖这些流程今天

With Capgo you only need to install our plugin and call CapacitorUpdater.notifyAppReady(). Capgo 将所有其他内容(频道、捆绑包清理、回滚、分析和CLI自动化)处理为原生功能。以下部分将逐步介绍每个任务。

在开始之前

开始之前
  • 确保您的项目已经使用 Capacitor 5 或更高版本。
  • 安装 Capgo CLI (npm install -g @capgo/cli) 如果您计划从CI/CD推送包。

第一步 – 安装 Capgo 并移除 Capawesome SDK

步骤1 – 安装Capgo并移除CapawesomeSDK
终端窗口
npm uninstall @capawesome/capacitor-live-update
npm install @capgo/capacitor-updater
npx cap sync

这是唯一必须交换的。Capgo的原生code内置了插件;无需额外的JavaScript帮助。

第 2 步 – 最小配置

标题:第 2 步 – 最小配置

之前的设置需要映射数十个选项 capacitor.configCapgo 能够自动识别您的项目,因此最小配置如下:

capacitor.config.ts
import { CapacitorConfig } from '@capacitor/cli'
const config: CapacitorConfig = {
plugins: {
CapacitorUpdater: {
autoUpdate: true,
autoDeletePrevious: true,
periodCheckDelay: 10 * 60 * 1000, // optional: check every 10 minutes
},
},
}
export default config

Capawesome 列出的所有手动标志(defaultChannel, autoDeleteBundles,保留策略等)都可以通过 Capgo 控制台或 API 来管理。您只需要覆盖这些键,如果您想与 Capgo 的默认行为不同。

配置快速参考

标题:配置快速参考
Capawesome 选项Capgo 等效项您需要设置吗?
appIdCapgo项目创建后从该控制台获取如果您在一个二进制文件中使用多个项目
defaultChannelAPI控制台中管理的频道规则可选;大多数团队在服务器端设置
autoDeleteBundlesautoDeletePrevious: true (默认)已启用
publicKeyCapgo控制台中管理如果您手动轮换密钥
maxVersions /保留包保留策略在Capgo中集中配置(默认1个月,最大24个月)

步骤 3 – 调用 notifyAppReady() (唯一必需的钩子)

标题:步骤 3 – 调用 notifyAppReady() (唯一必需的钩子)

旧的工作流程引入了自定义监听器(checkForUpdates(), retryDownload(),隐藏启动屏幕等)。Capgo 自动执行这些步骤。您必须调用的唯一API是:

import { CapacitorUpdater } from '@capgo/capacitor-updater'
CapacitorUpdater.notifyAppReady()

这确认应用程序成功启动。如果确认信息永远不会到达,Capgo 将自动回滚捆绑包—无需额外的 JavaScript。

就这样了—Capgo 自动处理后台检查、启动屏幕可见性和回滚。

可选:在启动屏幕隐藏之前运行自定义逻辑
import { CapacitorUpdater } from '@capgo/capacitor-updater'
import { SplashScreen } from '@capacitor/splash-screen'
CapacitorUpdater.addListener('appReady', () => {
// Run diagnostics or logging if you need to
SplashScreen.hide()
})
CapacitorUpdater.notifyAppReady()

步骤 4 – 映射API调用(大部分可选)

标题:步骤 4 – 映射API调用(大部分可选)

In Capgo 中,您通常让自动更新器运行;手动 API 如果您需要完全控制仍然可用。

Capawesome 云Capgo 等价物您需要它吗?
LiveUpdate.fetchLatestBundle()CapacitorUpdater.getLatest()只有在实现自己的下载工作流程时
LiveUpdate.downloadBundle()CapacitorUpdater.download()可选:本地自动更新已经下载
LiveUpdate.setNextBundle()CapacitorUpdater.next()可选:仪表板固定包自动
LiveUpdate.reload()CapacitorUpdater.reload()可选:Capgo 强制必装包后 notifyAppReady()
LiveUpdate.getCurrentBundle()CapacitorUpdater.current()可选诊断

如果您坚持使用本地自动更新行为,您可以删除 Capawesome JavaScript 文件。

手动控制示例

标题:手动控制示例

下载最新的包

Capgo
import { CapacitorUpdater } from '@capgo/capacitor-updater'
const downloadUpdate = async () => {
const latest = await CapacitorUpdater.getLatest()
if (latest?.url) {
const bundle = await CapacitorUpdater.download({
url: latest.url,
version: latest.version,
})
console.log('Bundle downloaded', bundle?.id)
}
}
Capawesome 云
import { LiveUpdate } from '@capawesome/capacitor-live-update'
const downloadUpdate = async () => {
const result = await LiveUpdate.fetchLatestBundle()
if (result.downloadUrl) {
await LiveUpdate.downloadBundle({
bundleId: result.bundleId,
url: result.downloadUrl,
})
console.log('Bundle downloaded')
}
}

设置下一个包

Capgo
import { CapacitorUpdater } from '@capgo/capacitor-updater'
const setNextBundle = async () => {
await CapacitorUpdater.next({ id: 'bundle-id-123' })
}
Capawesome 云
import { LiveUpdate } from '@capawesome/capacitor-live-update'
const setNextBundle = async () => {
await LiveUpdate.setNextBundle({ bundleId: 'bundle-id-123' })
}

立即应用下载的包

Capgo
import { CapacitorUpdater } from '@capgo/capacitor-updater'
const applyUpdate = async () => {
await CapacitorUpdater.reload()
}
Capawesome 云
import { LiveUpdate } from '@capawesome/capacitor-live-update'
const applyUpdate = async () => {
await LiveUpdate.reload()
}

第五步 – 更新策略:Capgo如何处理它们

第五步 – 更新策略:Capgo如何处理它们

Capawesome 文档了三种策略。以下是它们的翻译:

  • 之前的工作流: 在code中配置并手动下载。
  • Capgo: 默认开启(autoUpdate: true. No additional code required.
  • 之前的工作流程: 添加一个 App.resume 监听器,调用 download, 然后 set.
  • Capgo上下文:Capgo UI 中的 HTML 文本片段(父级键 `submitting_a_pr_to_capgo`)。页面/区域:Capgo 营销网站。角色:网站副本句子。见于:contributing.astro 页面。保留 Capgo 产品/品牌和开发者术语的原始形式。
: 后台自动更新已经在恢复后执行检查。您只需要手动监听器,如果您想要自定义间隔。
import { App } from '@capacitor/app'
import { CapacitorUpdater } from '@capgo/capacitor-updater'
App.addListener('resume', async () => {
const latest = await CapacitorUpdater.getLatest()
if (latest?.url) {
const downloaded = await CapacitorUpdater.download({
url: latest.url,
version: latest.version,
})
if (downloaded) {
await CapacitorUpdater.next({ id: downloaded.id })
}
}
})

复制到剪贴板中(Copy to clipboard)

Section titled “强制更新”
  • 之前的工作流程: wire prompt logic and enforce reload.
  • Capgo__CAPGO_KEEP_0__ majorAvailable : mark the bundle as “强制” in the dashboard, then listen for the notifyAppReady()事件(在

)后发射,要求用户在应用中升级。

第 6 步 – 部署包

Section titled “第 6 步 – 部署包” capawesome live-update deploy, Capgo offers a similar CLI workflow, and you can also automate deployments entirely via API.

,__CAPGO_KEEP_0__ 提供了一个类似的 __CAPGO_KEEP_1__ 工作流程,您还可以通过 __CAPGO_KEEP_2__ 完全自动化部署。
# Authenticate once (stores a token in your CI environment)
capgo login
# Upload a new bundle (auto-detects platform/version)
capgo bundle upload --path dist --channel production

因为 Capgo 自动跟踪捆绑包健康状态,你也会获得:

  • 设备级别的安装日志
  • 自动保留(默认为一个月)可配置的限制至24个月
  • 实时延迟指标在 status.capgo.app/history.

迁移时间线

迁移时间线
  • 库存 & 安装: 10 分钟 (npm install, 移除旧插件)
  • 配置 & 准备: 5 分钟 (notifyAppReady).
  • Sanity checks : 15 分钟 (可选手动测试或监听器).
  • 首次部署 : 10 分钟 与 Capgo CLI 或 CI 集成.

在实际中团队在一个小时内完成。如果您提供 Capawesome 项目详细信息,我们甚至可以为您导入通道和设备列表。

Capgo 支持

Capgo 支持

Capgo 是为长期可靠性而设计的:原生delta更新、加密的捆绑包、自动回滚和不需要自定义JavaScript的分析。迁移后,您可以删除维护密集的胶水,让平台自动运行更新。

继续迁移到 Capawesome 云到 Capgo

标题:继续迁移到 Capawesome 云到 Capgo

如果您正在使用 迁移到 Capawesome 云到 Capgo 来规划CI/CD自动化,连接它到 Capgo CI/CD 用于Capgo CI/CD中的产品工作流程 Capgo 原生构建 为产品工作流程在 Capgo 原生构建中 Capgo 集成 为产品工作流程在 Capgo 集成中 CI/CD 集成 为 CI/CD 集成的实现细节 GitHub 动作集成 为 GitHub 动作集成的实现细节