从 Capawesome Cloud 迁移到 Capgo
⚡️ Capgo 自动化通道、捆绑清理、回滚、分析和 CLI 本地上传。使用本指南执行迁移所需的最少步骤,并可选择重新创建您仍然需要的任何自定义行为。
- 收集您现有的 Capawesome Cloud 配置(应用程序 ID、通道、签名密钥、CLI 令牌),以便您稍后可以存档或审核。
2.安装Capgo插件,删除Capawesome SDK,并调用
CapacitorUpdater.notifyAppReady()。 - 如果您现在依赖这些流程,请配置可选行为(手动下载、固定捆绑包、重新加载)。
使用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”npm uninstall @capawesome/capacitor-live-updatenpm install @capgo/capacitor-updaternpx cap sync这是唯一的强制交换。 Capgo 的本机代码随插件一起提供;不需要额外的 JavaScript 助手。
步骤 2 – 最低配置
Section titled “步骤 2 – 最低配置”之前的设置需要映射 capacitor.config 中的数十个选项。 Capgo 自动识别您的项目,因此最小配置如下所示:
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 configCapawesome 列为手动标记的所有内容(defaultChannel、autoDeleteBundles、保留策略等)均通过 Capgo 仪表板或 API 进行管理。仅当您想要与 Capgo 的默认值不同的行为时,才需要覆盖这些键。
配置快速参考
Section titled “配置快速参考”| 很棒的选择 | Capgo 等效 | 需要设置吗? |
|---|---|---|
appId | 创建项目后取自 Capgo 仪表板 | 仅当您在一个二进制文件中使用多个项目时 |
defaultChannel | 在仪表板/API 中管理的频道规则 | 选修的;大多数团队将此设置在服务器端 |
autoDeleteBundles | autoDeletePrevious: 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。
手动控制示例
Section titled “手动控制示例”下载最新的捆绑包
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) }}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') }}设置下一个捆绑包
import { CapacitorUpdater } from '@capgo/capacitor-updater'
const setNextBundle = async () => { await CapacitorUpdater.next({ id: 'bundle-id-123' })}import { LiveUpdate } from '@capawesome/capacitor-live-update'
const setNextBundle = async () => { await LiveUpdate.setNextBundle({ bundleId: 'bundle-id-123' })}立即应用下载的捆绑包
import { CapacitorUpdater } from '@capgo/capacitor-updater'
const applyUpdate = async () => { await CapacitorUpdater.reload()}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()之后发出)以要求用户在您的应用内升级。
步骤 6 – 部署捆绑包
Section titled “步骤 6 – 部署捆绑包”如果您以前依赖“强大的实时更新部署”,Capgo 提供类似的 CLI 工作流程,并且您还可以通过 API 完全自动化部署。
# 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 支持- 迁移礼宾:在 cal.com/team/capgo/demo 预订课程。
Section titled “Capgo 支持- 迁移礼宾:在 cal.com/team/capgo/demo 预订课程。”- 社区:加入 Capgo Discord。
- 问题跟踪器:github.com/Cap-go/capacitor-updater/issues。
Capgo 专为长期可靠性而构建:本机增量更新、加密捆绑包、自动回滚和不需要自定义 JavaScript 的分析。迁移后,您可以删除需要大量维护的粘合剂,并让平台自动运行更新。