Capawesome CloudからCapgoへの移行
⚡️ Capgoはチャネル、バンドルクリーンアップ、ロールバック、分析、CLIアップロードをネイティブに自動化します。このガイドを使用して、移行に必要な最小限の手順を実行し、必要に応じてカスタム動作を再作成してください。
- 既存のCapawesome Cloud設定(App ID、チャネル、署名キー、CLIトークン)を収集し、後でアーカイブまたは監査できるようにします。
- 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 “設定のクイックリファレンス”| Capawesomeオプション | Capgoの同等物 | 設定する必要がありますか? |
|---|---|---|
appId | プロジェクト作成後にCapgoダッシュボードから取得 | 1つのバイナリで複数のプロジェクトを使用する場合のみ |
defaultChannel | ダッシュボード/APIで管理されるチャネルルール | オプション;ほとんどのチームはこれをサーバー側で設定 |
autoDeleteBundles | autoDeletePrevious: true(デフォルト) | すでに有効 |
publicKey | Capgoコンソールで管理 | 手動でキーをローテーションする場合のみ |
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 Cloud | 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は3つの戦略を文書化しています。それらの翻訳方法は次のとおりです:
バックグラウンド更新
Section titled “バックグラウンド更新”- 以前のワークフロー:コードで設定し、手動でダウンロードをスケジュール。
- 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を介して展開を完全に自動化することもできます。
# 一度認証(CI環境にトークンを保存)capgo login
# 新しいバンドルをアップロード(プラットフォーム/バージョンを自動検出)capgo bundle upload --path dist --channel productionCapgoはバンドルの健全性を自動的に追跡するため、次のようなものも得られます:
- すべてのインストールに対するデバイスレベルの監査ログ。
- 自動保持(デフォルトで1ヶ月)、最大24ヶ月まで設定可能な制限付き。
- status.capgo.app/historyのリアルタイムレイテンシメトリクス。
移行タイムライン
Section titled “移行タイムライン”- インベントリとインストール:10分(
npm install、古いプラグインの削除)。 - 設定と準備:5分(
notifyAppReady)。 - サニティチェック:15分(オプションの手動テストまたはリスナー)。
- 最初の展開:Capgo CLIまたはCI統合で10分。
実際には、チームは1時間未満で完了します。Capawesomeプロジェクトの詳細を提供していただければ、チャネルとデバイスリストをインポートすることもできます。
Capgoサポート
Section titled “Capgoサポート”- 移行コンシェルジュ:cal.com/team/capgo/demoでセッションを予約。
- コミュニティ:Capgo Discordに参加。
- 問題トラッカー:github.com/Cap-go/capacitor-updater/issues。
Capgoは長期的な信頼性のために構築されています:ネイティブデルタ更新、暗号化されたバンドル、自動ロールバック、カスタムJavaScriptを必要としない分析。移行後は、メンテナンスが多い接着剤を削除し、プラットフォームに更新を自動的に実行させることができます。