メインコンテンツへスキップ

Capawesome CloudからCapgoへの移行

⚡️ Capgo は、チャンネル管理、bundle のクリーンアップ、ロールバック、分析、そして CLI のアップロードをネイティブに自動化します。このガイドでは、移行に必要な最小限の手順と、必要に応じてカスタム動作を再構築する方法を説明します。

  1. 後でアーカイブや監査ができるよう、既存の Capawesome Cloud の設定(App ID、チャンネル、署名キー、CLI トークン)をまとめておいてください。
  2. Capgo プラグインをインストールし、Capawesome の SDK を削除してから、 CapacitorUpdater.notifyAppReady().
  3. 現在それらのフローを利用している場合は、オプションの動作(手動ダウンロード、bundle の固定、リロード)を設定してください。

Capgo を使用する場合、プラグインをインストールして CapacitorUpdater.notifyAppReady()を呼び出すだけで済みます。チャンネル、bundle のクリーンアップ、ロールバック、分析、CLI の自動化など、それ以外のすべてはネイティブに処理されます。以下のセクションで各タスクの手順を詳しく説明します。

  • プロジェクトですでに Capacitor 5 以降を使用していることを確認してください。
  • Capgo CLI (npm install -g @capgo/cli) をインストールしてください。CI/CDからbundleをプッシュする場合に必要です。

ステップ 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ヘルパーは不要です。

以前の設定では、多くのオプションを 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で手動フラグとしてリストされているもの(defaultChannel, autoDeleteBundles保持ポリシーなど)はすべて、Capgo ダッシュボードまたは API で管理されます。Capgo のデフォルト設定とは異なる挙動をさせたい場合にのみ、これらのキーをオーバーライドする必要があります。

Capawesome のオプションCapgo での相当項目設定は必要ですか?
appIdプロジェクト作成後に Capgo ダッシュボードから取得単一のバイナリ内で複数のプロジェクトを使用する場合のみ必要
defaultChannelダッシュボード/API で管理される Channel ルール任意。ほとんどのチームはサーバーサイドで設定します
autoDeleteBundlesautoDeletePrevious: true (デフォルト)有効化済み
publicKeyCapgo コンソールで管理キーを手動でローテーションする場合のみ
maxVersions / 保存期間Bundle 保存ポリシーCapgo で一括設定 (Capgo で設定。デフォルト1ヶ月、最大24ヶ月)

ステップ 3 – 呼び出し notifyAppReady() (必須の唯一のフック)

「ステップ 3 – notifyAppReady() を呼び出す(唯一の必須フック)」セクション

従来のワークフローでは、カスタムリスナーが導入されていました(checkForUpdates(), retryDownload()スプラッシュ画面の非表示など)。Capgo はこれらのステップをネイティブに実行します。呼び出す必要がある唯一の API は以下です:

import { CapacitorUpdater } from '@capgo/capacitor-updater'
CapacitorUpdater.notifyAppReady()

これにより、アプリが正常に起動したことが確認されます。もし確認が届かない場合、Capgo が自動的に bundle をロールバックします。追加の 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 CloudCapgo 相当必要ですか?
LiveUpdate.fetchLatestBundle()CapacitorUpdater.getLatest()独自のダウンロードワークフローを実装する場合のみ必要です
LiveUpdate.downloadBundle()CapacitorUpdater.download()任意:ネイティブの自動更新ですでにダウンロード済み
LiveUpdate.setNextBundle()CapacitorUpdater.next()任意:ダッシュボードが自動でbundleをピン留め
LiveUpdate.reload()CapacitorUpdater.reload()任意:Capgo により、以降はbundleが必須になります notifyAppReady()
LiveUpdate.getCurrentBundle()CapacitorUpdater.current()任意の診断機能

ネイティブの自動更新の挙動を維持する場合は、CapawesomeのJavaScriptを完全に削除できます。

最新のbundleをダウンロード

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

次のbundleを設定する

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

ダウンロードしたbundleを即座に適用する

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 による制御方法

「ステップ 5 – アップデート戦略: Capgo による制御方法」というセクション

Capawesomeは3つの戦略を説明しています。Capgoではそれぞれ次のように対応します:

  • 従来のワークフロー:codeで設定し、ダウンロードを手動でスケジュールします。
  • Capgo:デフォルトで有効(autoUpdate: true)。追加のcodeは不要です。
  • 従来のワークフロー:〜を追加 App.resume リスナー、呼び出し download、次に set.
  • Capgo: バックグラウンドの自動アップデートは、resume後にすでにチェックを実行しています。カスタムの間隔で実行したい場合にのみ、手動のリスナーが必要になります。
オプション: 手動の resume チェック
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: ダッシュボードで bundle を「mandatory」としてマークし、次の 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 はバンドルのヘルスを自動で追跡するため、次の機能も利用できます:

  • インストールごとのデバイスレベルの監査ログ。
  • 自動保持(デフォルトは1ヶ月、最大24ヶ月まで設定可能)。
  • リアルタイムのレイテンシメトリクス: capgo アプリの履歴ステータス.
  • インベントリ確認とインストール: 10分 (npm install, 旧プラグインを削除)。
  • 設定と準備: 5分 (notifyAppReady).
  • 動作確認: 15分 (オプションのテストやリスナー設定)。
  • 初回デプロイ: Capgo CLI または CI 連携を使用する場合、10分。

実際、多くのチームが1時間以内に完了しています。Capawesomeのプロジェクト詳細をご提供いただければ、チャンネルやデバイスリストのインポートも代行可能です。

Capgo は長期的な信頼性を重視して設計されています。ネイティブなデルタアップデート、暗号化されたbundle、自動ロールバック、そしてカスタムJavaScriptを必要としない分析機能を提供します。移行後は、メンテナンス負荷の高いコードを削除し、プラットフォームによる自動アップデートに任せることができます。

使用している場合 Capawesome CloudからCapgoへの移行 CI/CD自動化を計画するには、次と連携してください Capgo での CI/CD 設定 Capgo CI/CDでのプロダクトワークフローについては、 Capgo Native Build Capgo Native Buildsでのプロダクトワークフローについては、 Capgo インテグレーション Capgo インテグレーションでのプロダクトワークフロー向けに、 CI/CD 連携 CI/CD Integrationの実装詳細については、 GitHub Actions 連携 GitHub Actions Integrationの実装詳細については。