从 Capawesome 云迁移到 Capgo
复制一个包含安装步骤和本插件 Markdown 指南的配置提示。
⚡️ Capgo 自动化频道、捆绑包清理、回滚、分析和 CLI 原生上传。使用此指南执行最小化的步骤以迁移并可选地重建任何您仍需要的自定义行为。
概述
概述标题- 收集您的现有 Capawesome 云配置(App ID、频道、签名密钥、 CLI 令牌)以便稍后存档或审计。
- 安装 Capgo 插件,移除 Capawesome SDK,并调用
CapacitorUpdater.notifyAppReady(). - 配置可选行为(手动下载、捆绑包固定、重新加载)如果您依赖这些流程今天。
使用 Capgo 您只需安装我们的插件并调用 CapacitorUpdater.notifyAppReady()从Capawesome升级到Capgo的所有其他内容—频道、捆绑包清理、回滚、分析和CLI自动化—均由本地处理。以下各节将逐步介绍每个任务。
开始之前
开始之前- 确保您的项目已经使用Capacitor 5或更高版本。
- 如果您计划从CI/CD推送捆绑包,则需要安装Capgo CLI。
npm install -g @capgo/cli步骤1—安装__CAPGO_KEEP_0__并移除Capawesome__CAPGO_KEEP_1__
步骤1—安装Capgo并移除CapawesomeSDK
Section titled “步骤1 – 安装Capgo并移除Capawesome SDK”npm uninstall @capawesome/capacitor-live-updatenpm install @capgo/capacitor-updaternpx cap sync这是唯一必须交换的。Capgo的原生code内置了插件;无需额外的JavaScript助手。
步骤2—最小配置
步骤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 的默认行为不同。
配置快速参考
快速配置参考| Capawesome 选项 | Capgo 等效项 | 是否需要设置它? |
|---|---|---|
appId | 从Capgo控制台创建项目后,取自Capgo控制台 | 如果您在一个二进制文件中使用多个项目 |
defaultChannel | API控制台中管理的频道规则 | 可选;大多数团队在服务器端设置 |
autoDeleteBundles | autoDeletePrevious: true (默认) | 已启用 |
publicKey | 在Capgo控制台中管理 | 如果您手动轮换密钥 |
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 调用(大部分可选)在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 文件。
手动控制示例
标题:手动控制示例下载最新包
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 处理它们
步骤 5 – 更新策略:如何 Capgo 处理它们Capawesome 文档了三种策略。以下是它们的翻译:
- 之前的工作流: 在 code 中配置并手动下载。
- Capgo: 默认启用(
autoUpdate: true: 不需要额外的 code。
- 之前的工作流程: 添加一个
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 - 部署包
页面标题:步骤 6 - 部署包
如果您以前依赖于__CAPGO_KEEP_0__ 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). - 功能检查: 15 分钟(可选手动测试或监听器)。
- 首次部署升级时间:10 分钟,支持 Capgo CLI 或 CI 集成。
Page/area: Capgo Builder / native cloud build product page. Role: Short UI label or navigation item. Message key `native_build_builder_credit_first` (Native Build Builder Credit First).
: 10 分钟与 Capgo __CAPGO_KEEP_1__ 或 CI 集成。
Capgo 支持- __CAPGO_KEEP_0__ 支持标题:__CAPGO_KEEP_0__ 支持 book.capgo.app/demo.
- : 预约一个会话在升级至 Capgo Capgo Discord.
- 问题跟踪: github.com/Cap-go/capacitor-updater/issues.
Capgo 是为长期可靠性而设计的:原生delta更新、加密的捆绑包、自动回滚和不需要自定义JavaScript的分析。迁移后,您可以删除维护密集的胶水,让平台自动运行更新。
继续迁移到 Capgo
标题:继续迁移到 Capgo如果您正在使用 迁移到 Capgo 来规划CI/CD自动化,连接它到 Capgo CI/CD 在 Capgo CI/CD 中的产品工作流程中 Capgo 原生构建 为产品工作流程在 Capgo 原生构建中 Capgo 集成 为产品工作流程在 Capgo 集成中 CI/CD 集成 为 CI/CD 集成的实现细节 GitHub 动作集成 为 GitHub 动作集成的实现细节