Capacitor-updater とは?
Capacitor-updater は、エンドユーザーへアプリのアップデートや改善を即座に配信できるテクノロジーです。
App Store の審査を通さずに、重要なバグ修正を即座にリリースしたい場合に非常に強力です。
アップデートが利用可能になった瞬間にサイドロードできる、「Web のような」俊敏性を実現します。
さらに、新しいアップデートでアプリがクラッシュした場合のロールバック機能も備えています
仕組みについて
Capgo はアプリの JavaScript bundle を Capgo サーバーと同期させます。ユーザーがアプリを起動するたびに、Capgo サーバーへ新しい bundle のアップデートがないか確認します。もちろん、ユーザー体験を細かく調整できる豊富な設定オプションも用意されています。
私は開発するすべてのプロジェクトで Capgo を使用しています。これにより、App Store の審査プロセスに費やす時間を短縮できています。
詳細はこちら こちら.
Capgo によるセマンティックバージョニングの理解
Capgo はセマンティックバージョニング (semver) を使用して、アプリへのアップデート適用タイミングと方法を決定します。これにより、ユーザーには互換性のあるアップデートのみが配信され、破壊的な変更が自動的にデプロイされるのを防ぎます。
セマンティックバージョニングのフォーマット MAJOR.MINOR.PATCH:
- MAJOR: Native Build のリリースが必要な破壊的変更
- MINOR: 後方互換性のある新機能
- PATCH: 後方互換性のあるバグ修正
例えば、アプリのバージョンが 1.0.0 で、 1.0.1 へアップデートしたい場合、Capgo が自動的にこのアップデートを適用します。ただし、 1.0.0 まで 2.0.0 (メジャーバージョン)へのアップデートは、破壊的変更を伴うため、Native Build による App Store 等でのリリースが必要になります。
Capgo のチャンネル設定では、どの種類のアップデートを自動適用するか構成できます:
- Major戦略: すべてのアップデートを許可(注意して使用してください)
- Minor戦略: マイナーアップデートとパッチアップデートのみを許可
- パッチ戦略: パッチアップデートのみを許可
- メタデータ戦略: 最小バージョン要件を満たすことが必要
Capgo のアップデートロジックで、異なるバージョンの組み合わせがどう動作するかを、こちらの Semver Tester ツールでテストできます。このツールを使えば、チャンネル設定に基づいてアップデートがいつ適用されるかを正確に把握できます。
制限事項はありますか?
魅力的に聞こえるかもしれませんが、いくつか留意すべき点があります。 まず、OTAアップデートは Web バンドルのみで動作します。 Capacitor の JS では、ほとんどすべての code を JS、CSS、HTML で書くので、大した制限ではないと思うかもしれません。 実際その通りですが、アプリにはネイティブモジュールもインストールしています。 モジュールが Android や iOS のディレクトリを変更する場合、OTA でアプリをアップデートすることはできません。 これらのディレクトリの中身はネイティブバイナリのコンパイルに使われるため、OTA では更新できないからです。 ネイティブアプリでもこの部分は更新できません。
CI/CDでこの部分を自動化することも可能です。その方法については、こちらのチュートリアルを作成しました。 iOS向けはこちら.
Capgo の自動設定
さあ、サインアップして API キーを取得し、最初のバージョンをアップロードしましょう!まずは、 Capgo アカウントの作成から始めましょう.
Capgo にログインすると、オンボーディングページが表示されます。

オンボーディングページの手順に従って、最初のアプリを追加してください。
CLI のガイドに従ってください
Capacitor アプリのルートディレクトリで、以下のコマンドを実行します:
npx @capgo/cli@latest init
Capacitor アプリに Capgo をインストールするには、CLI が Capgo を使ったアプリの設定プロセスを案内します。
手動で行いたい場合は、以下の手順に従ってください。
Capgo の手動設定
プラグインをインストール
最終的に、アプリにこの code が追加されているはずです:
npm i @capgo/capacitor-updater && npx cap sync
プラグインを Capacitor アプリにインストールするには。
次に、JS bundle が正常であることをネイティブプラグインに通知するため、アプリにこの code を追加します(これを行わないと、ネイティブプラグインは前のバージョンにロールバックします):
import { CapacitorUpdater } from '@capgo/capacitor-updater'
CapacitorUpdater.notifyAppReady()
これにより、インストールが成功したことがネイティブプラグインに通知されます。
その後、以下を実行して npm run build && npx cap copy アプリをアップデートします。
Capgo CLOUD にログイン
まず、以下を使用します: all apikey アカウントに表示されている CLI でログインするには:
npx @capgo/cli@latest login YOU_KEY
最初のアプリを追加
CLI を使用して、まずは Capgo Cloud でアプリを作成しましょう。
npx @capgo/cli@latest app add
このコマンドは、Capacitor の設定ファイルで定義されたすべての変数を使用してアプリを作成します。
最初のバージョンをアップロードする
次のコマンドで、code をビルドして Capgo に送信します:
npx @capgo/cli@latest bundle upload
デフォルトでは、バージョン名はお使いの ... のものになります package.json ファイル。
確認 Capgo ビルドが存在するかどうか。
さらに、こちらでテストも可能です: モバイル sandbox アプリ.
チャンネルをデフォルトに設定
アプリを Capgo に送信した後、チャンネルを default Capgo からのアップデートをアプリが受信できるように設定する必要があります。
npx @capgo/cli@latest channel set production -s default
デバイスで Live Update を受信する
Deploy から live update を受信するには、デバイスまたはエミュレータでアプリを実行する必要があります。最も簡単な方法は、以下のコマンドを使用して、エミュレータまたはコンピュータに接続されたデバイスでローカルアプリを起動することです。
npx cap run [ios | android]
アプリを開き、バックグラウンドに送ってから再度開くと、ログにアプリがアップデートを実行したことが表示されるはずです。
おめでとうございます! 🎉 初めての Live Update のデプロイに成功しました。これは Live Updates でできることのほんの始まりです。詳しくは、完全な Live Updates ドキュメント.
ローカルでのアップデート受信を停止するには、次のコマンドを実行してください
npx @capgo/cli@latest channel set
次へ:Capacitor-updater を使用して Capacitor アプリをシームレスにアップデートする
使用している場合 Capacitor-updaterでCapacitorアプリをシームレスにアップデート 移行とエンタープライズ運用を計画するには、次と連携してください Capgo エンタープライズ Capgo Enterprise のプロダクトワークフロー向けに、 Ionic Enterprise プラグインの代替案 Ionic Enterprise Plugin Alternatives のプロダクトワークフロー向けに、 Capgo の代替案 Capgo Alternatives でのプロダクトワークフロー向け、 Capgo コンサルティング Capgo Consulting でのプロダクトワークフロー向け、および Capgo プレミアムサポート Capgo Premium Support でのプロダクトワークフロー向け。