CapgoのLive Updateチャンネルを管理して設定する方法を学びましょう。Live Updateチャンネルを使用すると、特定のJSバンドルビルドをCapgoで構成されたデバイスに直接送信できます。

チャネル

ライブアップデートチャンネルは、任意のデバイスがそのチャンネルに接続してアップデートを待っている場合に、特定のJSバンドルビルドのアプリケーションへのリンクを指します。アプリケーションにライブアップデートの__CAPGO_KEEP_0__を__CAPGO_KEEP_1__をインストールすると、任意のデバイスがそのチャンネルに接続してアップデートを待っている場合に、任意のネイティブバイナリがアプリケーション起動時に利用可能なアップデートをチェックします。チャンネルが指すビルドをいつでも変更でき、必要に応じて前のビルドに戻すこともできます。 install the Capgo Live Updates SDK チャンネルは機密性を提供しない

デバイスがチャンネルを選択する方法(優先順位)

「デバイスがチャンネルを選択する方法(優先順位)」

デバイスがアップデートを確認するとき、Capgoは、次の順序(優先順位が高い順)で使用するチャンネルを決定します:

  1. デバイスの強制マッピング(ダッシュボード) – 特定のデバイスIDを手動でチャンネルに固定します。緊急のデバッグや制御されたテストに使用します。常に勝ちます。
  2. Cloud上のoverride(デバイス単位)via ダッシュボードまたはAPI – ダッシュボードまたはAPIでデバイスのチャンネルを変更すると作成されます。機能/PR チャンネル間でQA ユーザーが切り替える場合やユーザー問題を再現する場合に使用します。バイナリを再インストールしてもクリアされません。デバイスエントリを削除するとクリアされます。
  3. プラグイン setChannel() ローカルチャンネル – アプリが呼び出すときに作成されます setChannel() とバックエンドがターゲットチャンネルが自己割り当てを許可するかどうかを検証します。選択されたチャンネルは、デバイス上でローカルに保存され、即座に効果を発揮し、デバイスオーバーライドUIに表示されません。
  1. Capacitor 設定 defaultChannel (テストビルドのデフォルト) – このチャネルが存在する場合、 capacitor.config.* と強制/オーバーライド/ローカルチャネルが存在しない場合、 beta, qa, pr-123このチャネルでアプリが起動します (例えば、)
  2. 。テストフライト/内部ビルドのためにテスターが自動的にプレリリースチャネルに到達するように設計されています。生産ビルドは通常、この値を未設定にします。 – If you mark a default channel in the dashboard, all normal end‑users (no force, no Dashboard/API override, no plugin local channel, no config defaultChannel) attach here. Change it to roll out or roll back instantly—no new binary. If you have platform-specific defaults (for example, one iOS-only, one Android-only, one Electron-only), each device lands on the default matching its platform. Leaving the cloud default unset is allowed; in that case the device must match on steps 1–4 to receive updates.

– ダッシュボードでデフォルトチャネルをマークすると、すべての通常のエンドユーザー (強制なし、ダッシュボード/ __CAPGO_KEEP_0__ オーバーライドなし、プラグインローカルチャネルなし、config defaultChannel なし) に接続されます。変更すると即座にロールアウトまたはロールバックできます—新しいバイナリなし。プラットフォーム固有のデフォルト (例えば、iOS-のみ、Android-のみ、Electron-のみ) を持つ場合、各デバイスは対応するプラットフォームにマッチするデフォルトに接続されます。クラウドのデフォルトを未設定にすると、デバイスはステップ 1–4 にマッチする場合にのみ更新を受け取ります。

  • ベストプラクティス: defaultChannel 1–4 を例外/テストレイヤーとして扱いましょう。クラウドのデフォルトを設定した場合、実際のユーザーはそれに流れ込むはずです。デフォルトを設定しない場合は、ユーザーがどのように接続するか (通常は)
  • を使用してください。 defaultChannel config またはデバイスごとのオーバーライドを使用してください。テスターに明示的にビルドを配布する場合にのみを設定してください。デフォルトを未設定にすると、生産ロジックはダッシュボードに集中するため、生産ビルドのロジックは中央に保たれます。
  • 使用 setChannel() 生産環境ではsparinglyしてください—主にQAまたはターゲット診断用に。

プラットフォーム (iOS / Android / Electron のスイッチ) が有効になっていない場合、チャンネルが選択されると、リストの下に進みます。

概要: 強制 > ダッシュボード/API オーバーライド > プラグイン setChannel() ローカルチャンネル > 設定 defaultChannel > Cloud Default。

クラウドのデフォルトを設定することは任意ですが、通常は新しいデバイスのキャッチオールパスとして機能します。デフォルトがなければ、強制マッピング、オーバーライド、または__CAPGO_KEEP_0__ config にマッチするデバイスのみがアップデートを受け取ります。デフォルトをマークする場合、次のパターンを考慮してください: defaultChannel in the Capacitor config will receive updates. When you do choose to mark defaults, keep these patterns in mind:

  • – iOS、Android、および Electron が有効になっているチャンネルが 1 つだけの場合、デフォルトになり、オーバーライドなしのデバイスがここにアタッチします。 – If a channel has iOS, Android, and Electron enabled, it becomes the lone default; any device without overrides will attach here.
  • プラットフォーム固有のデフォルト – プラットフォームごとにチャンネルを分割する場合 (例えば、iOSのみ有効の場合、Androidのみ有効の場合、Electronのみ有効の場合)、それぞれのプラットフォームのデフォルトとしてマークします。 iOSデバイスはiOSのデフォルトに、AndroidデバイスはAndroidのデフォルトに、ElectronアプリはElectronのデフォルトにアクセスします。 ios-production クラウドデフォルトと両方のデフォルトは同じ決定レイヤーを占めます。クラウドデフォルトを設定すると、__CAPGO_KEEP_0__ 設定に値を複製する必要がなくなります—生産用ビルドの場合に空白のままにし、テスターまたはQAに意図的に送信するバイナリ用に予約します。 android-production デフォルトをいつでもダッシュボードで変更できます。デフォルトを入れ替えると、新しいデバイスはすぐに新しいルーティングに従い、既存のデバイスは次回チェックインするときに通常の優先順位ルールに従います。 electron-production チャンネルの設定

チャンネル defaultChannel デフォルト capacitor.config.* both occupy the same decision layer. If you set a cloud default, you don’t need to duplicate the value in your Capacitor config—leave defaultChannel デバイス defaultChannel 生産用ビルド

テスター

初期設定の際に最初のチャンネル(多くのチームは「Production」と名付けます)を作成しますが、すべてがロックされていません。チャンネルを任意の時点で変更または削除できます。追加のチャンネルを追加するには:

  1. Capgo ダッシュボードの「チャンネル」セクションに移動
  2. 「新しいチャンネル」ボタンをクリック
  3. チャンネルの名前を入力し、「作成」ボタンをクリック

チャンネルの名前はあなたが好きなように自由に決められます。一般的な戦略は、開発段階にチャンネルをマッチさせることです。たとえば:

  • Development - ローカルデバイスまたはエミュレータでライブアップデートをテストする
  • QA - QA チームが広範囲にリリースする前にアップデートを検証する
  • Staging - プロダクション環境に似た環境で最終テストを行う
  • Production - アプリストアからユーザーが受け取るアプリのバージョン

アプリ内でチャンネルの設定

アプリ内でチャンネルの設定の設定

チャンネルを作成した後、適切なチャンネルに応じてアプリを構成する必要があります。この例では、チャンネルを使用します。 Development チャンネル。

Open your capacitor.config.ts (または capacitor.config.json)ファイル。チャンネルセクションの下で、オプションで pluginsdefaultChannel テストビルド (内部 / QA)に設定します。生産ビルドの場合、デフォルトのCloudを使用するようにデバイスに指示するには、明示的にオーバーライドする必要があります。 クリップボードにコピー

import { CapacitorConfig } from '@capacitor/cli';
const config: CapacitorConfig = {
plugins: {
CapacitorUpdater: {
// For a QA/TestFlight build – testers start on the Development channel automatically.
defaultChannel: 'Development',
// Production builds usually omit this so users attach to the Cloud Default channel.
},
},
};

を実行して、iOS、Android、Electronプロジェクトに更新されたconfigファイルをコピーします。syncステップをスキップすると、以前のチャンネルで構成されていた場合、ネイティブプロジェクトは引き続き使用されます。 npx cap sync Copy to clipboard

チャンネルには、更新を受け取る人と更新を配信する方法を制御するオプションが複数あります。重要なものは以下のとおりです。Webアプリ、CLI、またはPublic APIから設定できます。

  • デフォルトチャネル: 新しいデバイスが接続するチャネルまたはプラットフォーム固有のチャネルをオプションで指定します。 "デフォルトチャネル動作" を参照して、ルーティングシナリオを確認してください。
  • プラットフォームフィルタ: チャネルごとに iOS, Android、または Electron デバイスあたりのチャネルごとに
  • ネイティブ下での自動ダウングレードを無効にする: デバイスのネイティブアプリのバージョンがチャネルのバンドルよりも新しい場合にアップデートを送信しないようにします (例: デバイスが 1.2.3 である場合、チャネルが 1.2.2 を持つ)。
  • 開発用ビルドを許可する: テストに役立つため、開発用ビルドへのアップデートを許可します。
  • エミュレータデバイスを許可する: テストに役立つため、エミュレータ/シミュレータへのアップデートを許可します。
  • デバイス自律割り当てを許可する: このチャネルにアプリを切り替えることができます。 . として、実行時にこのチャネルにアプリを切り替えることができます。 これを無効にすると、 setChannelこのチャネルでは失敗します。 setChannel 段階的ロールアウト

段階的ロールアウト

段階的ロールアウト

チャンネルは、デバイスの固有の基準よりも高いメジャーバージョンのターゲットバンドルをブロックすることで、安定したバンドルを維持しながら、ステイシーコホートに別のロールアウトターゲットを徐々に公開できます。すべてのユーザーにチャンネルを切り替えることなく、ロールバック、自動失敗応答の構成、チャンネルを一時停止、再開、昇格を行うことができます。詳しくは 進化的なロールアウト for the delivery model, dashboard workflow, API fields, and CLI commands.

自動更新戦略の無効化

  • セクションのタイトル「自動更新戦略の無効化」version_buildこのオプションを使用して、チャンネルが自動的に配信する更新の種類を制限します。 1.2.3 -> 2.0.0 メジャー: デバイスの固有の基準よりも高いメジャーバージョンのターゲットバンドルをブロックします。 1.2.3 -> 1.9.0 例:
  • はブロックされます; version_buildは許可されます。 1.2.3 -> 1.3.0 ブロックされています; 1.2.3 -> 1.2.4 許可されています。
  • パッチ: 最も厳格なモード。メジャー、ミニマム、パッチ番号の変更はすべてブロックされ、サフィックスの変更のみ許可されます。 MAJOR.MINOR.PATCH パッチ番号は同じままです。例えば: 1.0.0-beta.1 -> 1.0.0-beta.2 許可されています。 1.0.0+build.1 -> 1.0.0+build.2 許可されています。 1.0.0 -> 1.0.1 ブロックされています。
  • メタデータ: 各バンドルに最低限の更新バージョンのメタデータが必要です。CLI を使用して設定します。 --min-update-version または --auto-min-update-version設定されていない場合、チャネルは不正設定とみなされ、更新は拒否されます。
  • すべての更新に基づいて許可されます。 セマンティックバージョニングの互換性に基づいて許可されます。.

これらの戦略は、チャンネルのターゲットバンドルを、送信されたネイティブベースラインと比較します。 version_build、ではなく、ダウンロードした現在のバンドルを送信した version_name.

詳細と例については、/docs/cli/commands/#disable-updates-strategy を参照してください。

例 (CLI):

ターミナルウィンドウ
# Block major updates on the Production channel
npx @capgo/cli@latest channel set production com.example.app \
--disable-auto-update major
# Allow devices to self-assign to the Beta channel
npx @capgo/cli@latest channel set beta com.example.app --self-assign

この setChannel() メソッドは、アプリが実行時でチャンネルをプログラム的に切り替えることを許可します。これは、特に以下のシナリオで便利です。

  • QA/デバッグメニューのテスターがチャンネル間を切り替える
  • ベータプログラムのオプトインフロー
  • 機能フラグ実装
  • A/B テストシナリオ
import { CapacitorUpdater } from '@capgo/capacitor-updater';
// Switch to the beta channel
await CapacitorUpdater.setChannel({ channel: 'beta' });
// Optionally trigger an immediate update check after switching
await CapacitorUpdater.setChannel({
channel: 'beta',
triggerAutoUpdate: true
});

チャンネルにバンドルを割り当てる

「チャンネルにバンドルを割り当てる」のセクション

Capgo CLI を使用して、1 つのステップでライブ アップデートをデプロイできます。ライブ アップデートをデプロイするには、新しい JS バンドル ビルドをアップロードし、チャンネルに割り当てる必要があります。

ターミナル画面
npx @capgo/cli@latest bundle upload --channel=Development

このアクションは、チャンネルにアップロードされたビルドされた Web アセットをアップロードし、チャンネルに新しいバンドルを設定します。アプリケーションは、更新を検索するたびに、指定されたチャンネルにリスニングしているアプリケーションに更新を提供します。 Development チャンネルにバンドルを割り当てる

You can also assign builds to channels from the “Bundles” section of the Capgo dashboard. Click the menu icon next to a build and select “Assign to Channel” to choose the channel for that build.

重要なことに、__CAPGO_KEEP_0__ のバンドルはアプリケーション全体にわたるものであり、個々のチャンネルに特有のものではありません。同一のバンドルは複数のチャンネルに割り当てることができます。

チャンネルにバンドルを割り当てる

It’s important to note that bundles in Capgo are global to your app, not specific to individual channels. The same bundle can be assigned to multiple channels.

バンドルのバージョン管理を行う際は、 semantic versioning with Capgo’s Semver Tester のSemver Testerを使用し、 1.2.3-beta.1.

チャンネル固有のビルド用にプレリリース識別子を使用してください。例えば、ベータ版リリースは npx @capgo/cli@latest bundle upload --auto-bump CI環境では、ローカルバージョンが既にアップロードされている場合、 major, minor, patch/fix, metadata(任意に) ai) so the CLI bumps from the channel’s linked bundle until a free name is found. With ai)を使用して、 patch with no previous Capgo version). You cannot combine it with --bundleまでのバージョンを上げるまで、 の名前が見つかるまでのバージョンを上げることができます。 Workers AIはローカルと前回のデルタマニフェストからレベルを推測します(前回のバージョンが存在しない場合に使用されるのは)、 CLI reference.

このアプローチにはいくつかの利点があります:

  • ビルド間の関係を明確に伝えることができます。 1.2.3-beta.1 __CAPGO_KEEP_0__は明らかに 1.2.3.
  • チャンネル間でバージョン番号を再利用できるため、混乱を減らすことができます。
  • 明確なロールバックパスを提供します。ロールバックする必要がある場合、 1.2.3は前の安定版です。 1.2.2 チャンネル設定の典型的なセットアップとバンドルバージョンを合わせる例を見てみましょう:

チャンネル:

  • Development など 1.2.3-dev.1, 1.2.3-dev.2チャンネル:
  • QA channel: 1.2.3-qa.1, 1.2.3-qa.2, など
  • Staging チャンネル: 1.2.3-rc.1, 1.2.3-rc.2, など
  • Production チャンネル: 1.2.3, 1.2.4, など

使用 pre-release識別子を含むsemver 推奨手法ではあるが、厳密には必要ではない。重要なのは、ビルド間の関係を明確に伝え、チームの開発プロセスと一致するバージョニングスキームを見つけることである。

ライブアップデートのロールバック

「ライブアップデートのロールバック」セクション

バグやロールバックが必要なライブアップデートをデプロイした場合、簡単に前のビルドにロールバックできます。ダッシュボードの「チャンネル」セクションから:

  1. ロールバックしたいチャンネルの名前をクリック
  2. 指定したいビルドを探し、王冠のアイコンをクリックしてください。 ビルドを戻す
  3. このアクションを確認

選択したビルドはすぐにそのチャンネルで有効なビルドになります。アプリは、更新をチェックするときにロールバックしたバージョンを受け取ります。

CI/CDパイプラインのより高度なワークフローで、ライブアップデートのデプロイを自動化できます。ビルドプロセスにCapgoを統合すると、新しいバンドルを自動的にアップロードし、特定のブランチにプッシュしたり、新しいリリースを作成したりするたびにチャンネルに割り当てることができます。

CI/CD統合 CI/CD統合についてもっと学びましょう。 docs to learn more about automating Capgo live updates.

「最小権限のPRプレビュー」のセクション

__CAPGO_KEEP_0__

CIでプルリクエストごとに一時的なチャンネルを生成する必要があるが既存のメイン/デフォルトチャンネルを管理しない場合は アプリプレビュー API

  1. Have an organization administrator create a secure API key limited to the preview app and select アプリプレビュー__CAPGO_KEEP_0__ 組織管理者がプレビュー用アプリに制限された安全なAPIキーの作成と選択.
  2. アプリプレビュー pr-123__CAPGO_KEEP_0__キーの詳細 --default, --self-assignプレビュー用アプリ用に一意の非公開チャンネルを使用します。 --delete-linked-bundle-on-upload.
  3. ロールアウトオプションや
プルリクエストのバンドルをアップロードしてプロモートし、プルリクエストがクローズした後は所有するチャンネルとバンドルを削除します:
APP_ID="com.example.app"
PREVIEW_CHANNEL="pr-123"
BUNDLE_VERSION="1.2.3-pr.123"
npx @capgo/cli@latest bundle upload "$APP_ID" \
--apikey "$CAPGO_PREVIEW_KEY" \
--path ./dist \
--channel "$PREVIEW_CHANNEL" \
--bundle "$BUNDLE_VERSION"
npx @capgo/cli@latest channel delete "$PREVIEW_CHANNEL" "$APP_ID" \
--apikey "$CAPGO_PREVIEW_KEY" \
--delete-bundle \
--success-if-not-found

bundle upload --channel チャンネルが存在しない場合は作成し、バンドルをアップロードし、1 つのフローでプロモートします。 クリーンアップは原子的で所有権をチェックします: キーは、自身が作成したチャンネルとその関連する、共有されていないバンドルを削除できます。 ただし、既存のメイン/デフォルトチャンネル、別のプレビュー キーのチャンネル、または別のキーのバンドルを変更、プロモート、または削除することはできません。

レビューアが QR コード code またはプレビュー URL が必要な場合、管理者はアプリケーションに対してプレビューを 1 回有効にする必要があります:

ターミナル画面
npx @capgo/cli@latest app set "$APP_ID" --preview
npx @capgo/cli@latest get-qr "$APP_ID" --channel "$PREVIEW_CHANNEL" --apikey "$CAPGO_PREVIEW_KEY" --url

App Preview キーはプレビューを有効にすることができません。なぜなら、App 設定の権限がないからです。 GitHub Actions で、シークレットを含むプレビュー ジョブを実行し、 pull_request, ではなく pull_request_target, および同じリポジトリの PR に __CAPGO_KEEP_1__ を制限します。 github.event.pull_request.head.repo.full_name == github.repository.

チャンネルを理解したので、実際のデバイスにライブ アップデートを展開する準備ができました。基本的なプロセスは次のとおりです:

  1. アプリケーションに Capgo SDK をインストールする
  2. アプリを指定したチャンネルにリスニングするように設定します。
  3. ビルドをアップロードし、そのチャンネルに割り当てます。
  4. アプリを起動し、更新を待ちます!

詳細なガイドについては、 ライブアップデートの展開 を参照してください。ハッピーにアップデートしてください!

高度なチャンネル使用方法:ユーザー分割

「高度なチャンネル使用方法:ユーザー分割」のセクション

チャンネルは開発段階のみに使用できるものではありません。ユーザー分割の強力なツールであり、以下のような機能を提供します。

  • 異なるユーザータイプ向けの機能フラグ
  • A/Bテスト
  • 機能の段階的なロールアウト
  • ベータテストプログラム

これらの高度な用途を実装する方法を学びましょう: 機能フラグとA/Bテストのためにユーザーをプランとチャンネルで分割する方法.

チャンネルから続けて

「チャンネルから続けて」

チャンネル チャンネル チャンネル チャンネル チャンネル チャンネル チャンネル ベータテスト ソリューション ベータテスト ソリューション用製品ワークフロー バージョン ターゲット ソリューション バージョン ターゲット ソリューション用製品ワークフロー、 Capgo 環境ベスト プラクティス: ステージング 1 つのモバイル アプリ ID Capgo 環境ベスト プラクティス: ステージング 1 つのモバイル アプリ ID の実用的なコンテキスト