跳过内容

从 Capawesome 云迁移到 [Capgo]

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

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

与 Capgo 一起,您只需安装我们的插件并调用 CapacitorUpdater.notifyAppReady()。所有其他功能—通道、捆绑包清理、回滚、分析和 CLI 自动化—都由本地处理。以下各节将逐步介绍每个任务。

开始之前

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

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

步骤 1 — 安装 Capgo 并删除 Capawesome SDK
终端窗口
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 等效项您需要设置吗?
appId从Capgo创建项目后,会从Capgo控制台获取如果您在一个二进制文件中使用多个项目
defaultChannelAPI控制台中管理的频道规则可选;大多数团队在服务器端设置
autoDeleteBundlesautoDeletePrevious: true (默认)已启用
publicKey在Capgo控制台中管理如果您手动轮换密钥
maxVersions /保留包保留策略在Capgo中集中配置(默认1个月,最大24个月)

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

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

旧的工作流程引入了自定义监听器(checkForUpdates(), retryDownload(), hiding the splash screen, etc.). Capgo performs those steps natively. The only API you must call is:

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()
}

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

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

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

  • 之前的工作流: 在 code 中配置并手动下载。
  • Capgo__CAPGO_KEEP_0__autoUpdate: true. No additional code required.
  • 之前的工作流程: 添加一个 App.resume 监听器,调用 download, 然后 set.
  • Capgocontext
: 后台自动更新已经在恢复后执行检查。您只需要手动监听器,如果您想自定义间隔。
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 提示逻辑并强制重新加载。
  • Capgo:在 Capgo UI 中的更长字符串(父键 `submitting_a_pr_to_capgo`)中保留 HTML 文本片段。页面/区域:Capgo 营销网站。角色:网站副本句子。见于:contributing.astro 页面。保留 Capgo 产品/品牌和开发者术语完全不变。消息键 `submitting_a_pr_to_capgo`(提交 PR 到 Capgo)。 majorAvailable :在仪表板中标记包裹为“强制”然后监听事件(在 notifyAppReady())之后发出,要求用户在应用内升级。

如果您以前依赖于 capawesome live-update deploy,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).
  • Sanity checks: 15 分钟 (可选手动测试或监听器).
  • 首次部署: 10 minutes with Capgo CLI or CI integration.

: 10 分钟与 __CAPGO_KEEP_0__ __CAPGO_KEEP_1__ 或 CI 集成.

Capgo support

Capgo 支持

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

继续从 Capawesome Cloud 迁移到 Capgo

标题:继续从 Capawesome Cloud 迁移到 Capgo

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