跳转到内容

从 Capawesome Cloud 迁移到 Capgo

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

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

使用Capgo,您只需安装我们的插件并调用CapacitorUpdater.notifyAppReady()。其他所有内容(通道、捆绑清理、回滚、分析和 CLI 自动化)均在本机处理。以下部分直接介绍每个任务。

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

步骤 1 – 安装 Capgo 并删除 Capawesome SDK

Section titled “步骤 1 – 安装 Capgo 并删除 Capawesome SDK”
Terminal window
npm uninstall @capawesome/capacitor-live-update
npm install @capgo/capacitor-updater
npx cap sync

这是唯一的强制交换。 Capgo 的本机代码随插件一起提供;不需要额外的 JavaScript 助手。

之前的设置需要映射 capacitor.config 中的数十个选项。 Capgo 自动识别您的项目,因此最小配置如下所示:

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 列为手动标记的所有内容(defaultChannelautoDeleteBundles、保留策略等)均通过 Capgo 仪表板或 API 进行管理。仅当您想要与 Capgo 的默认值不同的行为时,才需要覆盖这些键。

很棒的选择Capgo 等效需要设置吗?
appId创建项目后取自 Capgo 仪表板仅当您在一个二进制文件中使用多个项目时
defaultChannel在仪表板/API 中管理的频道规则选修的;大多数团队将此设置在服务器端
autoDeleteBundlesautoDeletePrevious: true(默认)已经启用
publicKey在 Capgo 控制台中管理仅当您手动轮换密钥时
maxVersions / 保留捆绑保留政策在 Capgo 中集中配置(默认 1 个月,最长 24 个月)

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

Section titled “步骤 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 调用(大部分是可选的)

Section titled “步骤 4 – 映射 API 调用(大部分是可选的)”

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

很棒的云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 Cloud
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 Cloud
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 Cloud
import { LiveUpdate } from '@capawesome/capacitor-live-update'
const applyUpdate = async () => {
await LiveUpdate.reload()
}

步骤 5 – 更新策略:Capgo 如何处理它们

Section titled “步骤 5 – 更新策略:Capgo 如何处理它们”

Capawesome 记录了三种策略。他们的翻译是这样的:

  • 以前的工作流程:在代码中配置并手动安排下载。
  • Capgo:默认启用 (autoUpdate: true)。不需要额外的代码。
  • 之前的工作流程:添加 App.resume 侦听器,调用 download,然后调用 set
  • 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 })
}
}
})
  • 以前的工作流程:连接提示逻辑并强制重新加载。
  • Capgo:在仪表板中将捆绑包标记为“强制”,然后侦听 majorAvailable 事件(在 notifyAppReady() 之后发出)以要求用户在您的应用内升级。

如果您以前依赖“强大的实时更新部署”,Capgo 提供类似的 CLI 工作流程,并且您还可以通过 API 完全自动化部署。

Terminal window
# 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)。
  • 健全性检查:15 分钟(可选的手动测试或侦听器)。
  • 首次部署:使用 Capgo CLI 或 CI 集成需要 10 分钟。

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

Capgo 专为长期可靠性而构建:本机增量更新、加密捆绑包、自动回滚和不需要自定义 JavaScript 的分析。迁移后,您可以删除需要大量维护的粘合剂,并让平台自动运行更新。