コンテンツへスキップ

Capawesome CloudからCapgoへの移行

⚡️ Capgoはチャネル、バンドルクリーンアップ、ロールバック、分析、CLIアップロードをネイティブに自動化します。このガイドを使用して、移行に必要な最小限の手順を実行し、必要に応じてカスタム動作を再作成してください。

  1. 既存のCapawesome Cloud設定(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を削除

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のデフォルトとは異なる動作が必要な場合にのみ、これらのキーを上書きする必要があります。

CapawesomeオプションCapgoの同等物設定する必要がありますか?
appIdプロジェクト作成後にCapgoダッシュボードから取得1つのバイナリで複数のプロジェクトを使用する場合のみ
defaultChannelダッシュボード/APIで管理されるチャネルルールオプション;ほとんどのチームはこれをサーバー側で設定
autoDeleteBundlesautoDeletePrevious: true(デフォルト)すでに有効
publicKeyCapgoコンソールで管理手動でキーをローテーションする場合のみ
maxVersions / retentionバンドル保持ポリシー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', () => {
// 必要に応じて診断やログを実行
SplashScreen.hide()
})
CapacitorUpdater.notifyAppReady()

ステップ4 - API呼び出しをマップする(ほとんどオプション)

Section titled “ステップ4 - API呼び出しをマップする(ほとんどオプション)”

Capgoでは通常、自動アップデーターを実行させます。完全な制御が必要な場合は、手動APIも利用できます。

Capawesome CloudCapgoの同等物必要ですか?
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は3つの戦略を文書化しています。それらの翻訳方法は次のとおりです:

  • 以前のワークフロー:コードで設定し、手動でダウンロードをスケジュール。
  • 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 - バンドルのデプロイ”

以前にcapawesome live-update deployに依存していた場合、Capgoは同様のCLIワークフローを提供し、APIを介して展開を完全に自動化することもできます。

Terminal window
# 一度認証(CI環境にトークンを保存)
capgo login
# 新しいバンドルをアップロード(プラットフォーム/バージョンを自動検出)
capgo bundle upload --path dist --channel production

Capgoはバンドルの健全性を自動的に追跡するため、次のようなものも得られます:

  • すべてのインストールに対するデバイスレベルの監査ログ。
  • 自動保持(デフォルトで1ヶ月)、最大24ヶ月まで設定可能な制限付き。
  • status.capgo.app/historyのリアルタイムレイテンシメトリクス。
  • インベントリとインストール:10分(npm install、古いプラグインの削除)。
  • 設定と準備:5分(notifyAppReady)。
  • サニティチェック:15分(オプションの手動テストまたはリスナー)。
  • 最初の展開:Capgo CLIまたはCI統合で10分。

実際には、チームは1時間未満で完了します。Capawesomeプロジェクトの詳細を提供していただければ、チャネルとデバイスリストをインポートすることもできます。

Capgoは長期的な信頼性のために構築されています:ネイティブデルタ更新、暗号化されたバンドル、自動ロールバック、カスタムJavaScriptを必要としない分析。移行後は、メンテナンスが多い接着剤を削除し、プラットフォームに更新を自動的に実行させることができます。