Channels
このプラグインのインストール手順とマークダウンガイドを含むセットアップのコピー用
Live Update チャンネルは、特定のJSバンドルビルドのアプリケーションを指し、デバイスがそのチャンネルに接続してアップデートを待っている場合に共有されます。アプリケーションに install the Capgo Live Updates SDK Live Updates __CAPGO_KEEP_1__
デバイスがチャンネルを選択する方法 (優先順位)
「デバイスがチャンネルを選択する方法 (優先順位)」のセクションデバイスがアップデートをチェックするとき、Capgo は次の順序 (優先順位が高い順) でチャンネルを選択します:
- 強制的なデバイス マッピング (ダッシュボード) – 特定のデバイス ID をチャンネルに固定します。緊急のデバッグまたは制御されたテストに使用します。1 つの実ユーザーとテストする場合に使用します。常に勝ちます。Capgo は、最後のオーバーライドの書き込みから 90 日後にマッピングを削除します。詳しくは コンソールと API のオーバーライドは 90 日後に期限切れになります.
- クラウド オーバーライド (デバイスごと) via ダッシュボードまたは API – ダッシュボードまたは API でデバイスのチャンネルを変更すると作成されます。機能 / PR チャンネル間で QA ユーザーが切り替える場合、またはユーザー イシューを再現する場合に使用します。バイナリを再インストールするとオーバーライドはクリアされません。デバイス オーバーライドを削除するとクリアされます。同様に、90 日の保持期間が適用されます。
- プラグイン
setChannel()ローカルチャネル – アプリが呼び出すと作成されますsetChannel()バックエンドがターゲットチャネルが自己割り当てを許可するかどうかを検証し、選択したチャネルはそのデバイス上でローカルに保存され、即座に有効になり、デバイスオーバーライドUIには表示されません。
- Capacitor設定
defaultChannel(テストビルドのデフォルト) – __CAPGO_KEEP_0__に存在し、強制/オーバーライド/ローカルチャンネルが存在しない場合、アプリケーションはこのチャンネルから起動します (例: ).capacitor.config.*テストフライト/内部ビルド用に設計されており、テスターは自動的にプレリリースチャンネルにアクセスします。通常、プロダクションビルドではこの設定を空白にします。beta,qa,pr-123クラウドデフォルトチャンネル (主なパス ~99% のユーザー) - – ダッシュボードでデフォルトチャンネルをマークすると、通常のエンドユーザー (強制なし、ダッシュボード/ __CAPGO_KEEP_0__ オーバーライドなし、プラグインローカルチャンネルなし、config defaultChannel なし) はすべてこのチャンネルにアタッチされます。変更すると即時ロールアウトまたはロールバックが可能になります。新しいバイナリなしです。プラットフォーム固有のデフォルト (例、iOSのみ、Androidのみ、Electronのみ) を設定している場合、各デバイスは対応するプラットフォームにマッチしたデフォルトにアタッチされます。クラウドデフォルトを空白にした場合、デバイスはステップ1-4にマッチする場合にのみ更新を受け取ります。 – 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.
ステップ1-4をテスト/エクスペリエンス層として扱い、クラウドデフォルトを設定した場合、実ユーザーはそれに流れ込むようにしてください。クラウドデフォルトを設定しない場合は、ユーザーがアタッチする方法については、通常は
- __CAPGO_KEEP_0__を使用してください。
defaultChannelconfigまたはデバイスごとのオーバーライドで設定します。 - Only configure
defaultChannelテスト用にテスターに明示的に配布するバイナリのみに設定します。設定しないと、生産用ロジックはダッシュボードに集中されます。 - Use
setChannel()生産環境ではsparinglyに使用し、主にQAまたはターゲットされた診断に使用します。
プラットフォーム (iOS/Android/Electron) の設定が有効になっていない場合、選択プロセスはそのチャンネルをスキップし、リストの下に続きます。
Summary: Force > Dashboard/API Override > Plugin
setChannel()ローカルチャンネル > 設定defaultChannel> Cloud Default。
コンソールとAPIオーバーライドは90日後に期限切れになります。
「コンソールとAPIオーバーライドは90日後に期限切れになります」セクション強制マッピングとダッシュボードまたはパブリックAPIチャンネルオーバーライドはCapgoにデバイスごとに割り当てられます。クリーンアップジョブは割り当てを削除します。 90 日間の最後のオーバーライド書き込み後. チャンネル更新のチェックインはそのタイムスタンプをリセットしない。オーバーライドを書き直す (または自分で削除する) ことでタイムスタンプが変更される。
これは別のものである デバイスのインベントリ保持. Inventory removes devices that have not connected to Capgo for 90 days. Override cleanup removes the mapping even if the device is still active.
このクリーンアップによって削除されない割り当ての場合:
- セット
defaultChannelインcapacitor.config.*(再インストールしても存続する;後で変更するには新しいネイティブバイナリが必要) - コール
setChannel()アプリから。プラグイン 5.34.0 / 6.34.0 / 7.34.0 / 8.0.0 以降の場合、その割り当てはローカルであり、このクリーンアップによって削除されない。アプリを再インストールするとクリアされるため、アプリは再びsetChannel()を呼び出す必要がある。
チャンネル デバイス タブとデバイスのOverride UIのみコンソールとPublic API割り当てを表示します。 これらは、チャンネル内のすべてのデバイスを表示せず、ローカル setChannel() 割り当てを表示しません。

デフォルトのチャンネル動作
セクションのタイトル “デフォルトのチャンネル動作”クラウドのデフォルトを設定することは任意ですが、通常は新しいデバイスのキャッチオールパスとして機能します。 そうでない場合、強制マッピング、オーバーライド、または defaultChannel Capacitor の設定に一致するデバイスのみがアップデートを受け取ります。 デフォルトをマークする場合、次のパターンを考慮してください:
- シングルデフォルト(最も一般的な) – iOS、Android、Electronが有効なチャンネルがある場合、デフォルトのチャンネルになり、オーバーライドがなければデバイスはここにアタッチされます。
- プラットフォーム固有のデフォルト – プラットフォームごとにチャンネルを分割する場合 (例えば、iOSのみ有効、Androidのみ有効、Electronのみ有効)、各プラットフォームごとにデフォルトをマークします。iOSデバイスはiOSデフォルトに、AndroidデバイスはAndroidデフォルトに、ElectronアプリはElectronデフォルトにアクセスします。
ios-productioniOSが有効な場合android-productionAndroidが有効な場合electron-productionElectronが有効な場合
クラウドデフォルトと両方のデフォルトは同じ決定レイヤーを占めます。クラウドデフォルトを設定すると、__CAPGO_KEEP_0__ 設定に値を複製する必要がなくなります—生産用ビルドの場合に空白のままにします。テスターまたはQAに非生産用チャンネルを意図的に配布する場合にのみ、非生産用チャンネルに値を設定してください。クラウドデフォルトが異なる場合でも。 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 生産用ビルドの場合に空白のままにします。
テスターまたはQAに非生産用チャンネルを意図的に配布する場合にのみ、非生産用チャンネルに値を設定してください。 クラウドデフォルトを設定すると、__CAPGO_KEEP_0__ 設定に値を複製する必要がなくなります—生産用ビルドの場合に空白のままにします。テスターまたはQAに非生産用チャンネルを意図的に配布する場合にのみ、非生産用チャンネルに値を設定してください。クラウドデフォルトが異なる場合でも。、 アプリ情報。デフォルトはチャンネルページでなくなる。デフォルトを入れ替えると、新しいデバイスは即座に新しいルーティングに従い、既存のデバイスはチェックインの次の時点で通常の優先順位ルールに従う。
チャンネルの設定
セクションのタイトル “チャンネルの設定”オンボーディング中、最初のチャンネル(多くのチームはそれを “Production” と名付けます)を作成しますが、まだ何もロックされていません。チャンネル名を変更したり削除したりすることがいつでもできます。追加のチャンネルを設定するには:
- Capgo ダッシュボードの “チャンネル” セクションに移動
- “新しいチャンネル” ボタンをクリック
- チャンネル名を入力し “作成” をクリック
チャンネル名はあなたが好きなように自由に設定できます。一般的な戦略は、開発段階にチャンネルをマッチさせることです。
Development- ローカルデバイスまたはエミュレータでライブアップデートをテストするQA- QA チームが広範なリリース前にアップデートを検証するStaging- 生産環境に近い環境で最終テストを行うProduction- アプリストアからユーザーが受け取るアプリのバージョン向け
アプリ内でチャンネルの設定
セクション「アプリ内でチャンネルの設定」チャンネルが作成されたら、アプリを適切なチャンネルに反応させるように設定する必要があります。この例では、チャンネルを使用します。 Development チャンネルを開く
ファイル (または capacitor.config.ts ) を開きます。チャンネルセクションの下で、オプションでテストビルドを capacitor.config.jsonチャンネル plugins チャンネル defaultChannel ファイル セクション (内部 / QA). 生成用ビルドの場合、Cloudflare のデフォルトを使用するようにする。デフォルトを明示的にオーバーライドしない限り。
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. }, },};次に、Web アプリをビルドし、 npx cap sync を実行して、更新された構成ファイルを iOS、Android、Electron プロジェクトにコピーします。構成の同期をスキップすると、以前の設定に従ってネイティブ プロジェクトが使用するチャネルが続きます。
チャンネルオプションと戦略
「チャンネルオプションと戦略」セクションチャンネルには、更新を受け取るユーザーと更新を配信する方法を制御するオプションが複数あります。重要なものは以下のとおりです。Webアプリ、CLI、またはPublic APIから設定できます。
- デフォルトチャンネル: 新しいデバイスが接続したときに、チャンネルまたはプラットフォーム固有のチャンネルをオプションで指定できます。コンソールでは、App Information(アプリ情報)にあります。アプリ設定を管理 チャンネルページから参照してください。
- デフォルトチャンネル動作については、ルーティングシナリオを参照してください。
iOS,Androidプラットフォームフィルタ: チャンネルごとに、__CAPGO_KEEP_0__、__CAPGO_KEEP_1__、または__CAPGO_KEEP_2__に送信するデバイスを有効または無効にできます。Electronデバイスごとにチャンネルを有効または無効にできます。 - 自動ダウングレードを無効にする: デバイスのネイティブアプリのバージョンがチャンネルのバンドルよりも新しい場合に、更新を送信しないようにします。
- Allow development builds: Permit updates to development builds (useful for testing). CLI:
--dev/--no-dev. - 生産ビルドの許可: 生産 (ストア) ビルドへの更新を許可します。 実際のユーザーにサービスを提供するチャンネルでは、この設定をオンにします。 CLI:
--prod/--no-prod. - エミュレータ デバイスの許可: エミュレータ/シミュレータ (テストに役立つ) への更新を許可します。 CLI:
--emulator/--no-emulator. - 物理デバイスの許可: 実際のスマートフォンやタブレットへの更新を許可します。 生産チャンネルでは、この設定をオンにします。 CLI:
--device/--no-device. - デバイスの自己割り当ての許可: アプリが実行時、このチャンネルに切り替えることができるようにします。 これを無効にすると、
setChannelwill fail for this channel. __CAPGO_KEEP_0__:setChannelwill fail for this channel. CLI:--self-assign/--no-self-assign. - See
all,zip,delta,zip_from_builtin,delta_from_builtinUpdate package for the console dropdown and when each mode is useful. 進歩的なロールアウト
Progressive rollouts
Section titled “Progressive rollouts”A channel can maintain a stable bundle while gradually exposing a separate rollout target to a sticky device cohort. You can pause, resume, promote, roll back, and configure an automatic failure response without switching the channel for everyone. See Progressive rollouts for the delivery model, dashboard workflow, API fields, and CLI commands.
Progressive rollouts
Section titled “Disable Auto Update strategies”Disable Auto Update strategies
- Section titled “Disable Auto Update strategies”
version_buildUse this to restrict which kinds of updates the channel will automatically deliver. Options:1.2.3 -> 2.0.0major: Blocks a target bundle whose major version is higher than the device native baseline (1.2.3 -> 1.9.0Example: - is blocked;
version_buildis allowed.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): チャンネルはすでに存在している必要があります (channel set チャンネルを作成しない):
# Block major updates on the Production channelnpx @capgo/cli@latest channel set production com.example.app \ --disable-auto-update major
# Allow devices to self-assign to the Beta channelnpx @capgo/cli@latest channel set beta com.example.app --self-assign
# Production channel: store builds on real devices, no emulatorsnpx @capgo/cli@latest channel set production com.example.app --prod --device --no-emulatorアプリから setChannel() を使用する
セクションのタイトル “アプリから setChannel() を使用する”この setChannel() メソッドは、アプリが実行時でチャンネルをプログラム的に切り替えることを可能にします。この機能は、特に以下のシナリオで便利です。
- QA/デバッグメニューでテスターがチャンネル間を切り替えることができる場合
- ベータプログラムのオプティンフロー
- 機能フラグの実装
- A/Bテストのシナリオ
import { CapacitorUpdater } from '@capgo/capacitor-updater';
// Switch to the beta channelawait CapacitorUpdater.setChannel({ channel: 'beta' });
// Optionally trigger an immediate update check after switchingawait CapacitorUpdater.setChannel({ channel: 'beta', triggerAutoUpdate: true});バンドルをチャンネルに割り当てる
「バンドルをチャンネルに割り当てる」のセクションライブアップデートをデプロイするには、新しいJSバンドルビルドをアップロードし、チャンネルに割り当てる必要があります。Capgo と CLI を使用して、1 つのステップで実行できます。
npx @capgo/cli@latest bundle upload --channel=Developmentこれにより、ビルドされたWebアセットをアップロードし、チャンネルに割り当てた新しいバンドルをアクティブなビルドとして設定します。 Development チャンネル。 そのチャンネルに接続して更新を待つアプリは、次に更新をチェックするときにその更新を受け取る。
また、チャンネルにビルドを割り当てることもできます。 “バンドル”セクションのCapgoダッシュボードのメニューアイコンの隣にあるビルドをクリックし、「チャンネルに割り当てる」を選択して、そのビルドのチャンネルを選択してください。
バンドルバージョニングとチャンネル
バンドルバージョニングとチャンネルCapgoのバンドルは、アプリ全体にグローバルで、個々のチャンネルに特有のものではありません。 同じバンドルを複数のチャンネルに割り当てることができます。
バンドルをバージョン化する際には、 セマンティックバージョニングを使用し、CapgoのSemverテスターとプレリリース識別子を使用することをお勧めします。 プレリリースの場合、バージョンは 1.2.3-beta.1.
CIで、ローカルバージョンが既にアップロードされている場合、 npx @capgo/cli@latest bundle upload --auto-bump (任意) major, minor, patch/fix, metadata)を使用して、__CAPGO_KEEP_0__がチャンネルのリンクされたバンドルからバージョンを上げるまで、無料の名前を探します。 ai) so the CLI bumps from the channel’s linked bundle until a free name is found. With ai, Workers AI はローカル vs 前回の delta マニフェストからインファーするレベル (前回のマニフェストがない場合は) patch Capgo の前のバージョンがない場合にフォールバックします。Capgo を組み合わせることはできません。 --bundleCI/CD Integration と __CAPGO_KEEP_0__ の参照 CLI reference.
ビルド間の関係を明確に伝えることができます。
- __CAPGO_KEEP_0__ は明らかに
1.2.3-beta.1__CAPGO_KEEP_0__ を使用して、チャンネル間でバージョン番号を再利用できるため、混乱を減らすことができます。1.2.3. - 明確なロールバックパスを提供します。__CAPGO_KEEP_0__ からロールバックする必要がある場合、
- を知ることができます。
1.2.3, you know1.2.2は、前の安定版リリースです。
ここでは、チャンネル設定の典型的な例として、バンドルバージョンを合わせる方法を示します。
Developmentチャンネル:1.2.3-dev.1,1.2.3-dev.2などQAチャンネル: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など
チャンネル: など は推奨アプローチですが、厳密には必要ではありません。重要なのは、ビルド間の関係を明確に伝え、チームの開発プロセスと一致するバージョニングスキームを見つけることです。
ライブアップデートのロールバック
セクション「ライブアップデートのロールバック」バグが入ったライブアップデートや、戻す必要があるライブアップデートがあれば、簡単に前のビルドに戻すことができます。ダッシュボードの「チャンネル」セクションから:
- チャンネルをロールバックしたい場合は、そのチャンネルの名前をクリック
- 戻したいビルドを探し、王冠のアイコンをクリック

- 確認
選択したビルドはすぐにそのチャンネルで有効になります。アプリは、更新をチェックするときにロールバックしたバージョンを受け取ります。
自動デプロイ
セクション「自動デプロイ」より高度なワークフローでは、ライブアップデートのデプロイをCI/CDパイプラインの一部として自動化できます。Capgoをビルドプロセスに統合すると、新しいバンドルを自動的にアップロードし、特定のブランチにプッシュしたり、新しいリリースを作成したりするたびにチャンネルに割り当てることができます。
チェックアウト CI/CD統合 Capgoの自動化について学びましょう。
最小権限のプルリクビュー
最小権限のプルリクビューApp Preview __CAPGO_KEEP_0__ キーを使用して、CI がプルリクエストごとに一時的なチャネルを 1 つ作成する必要がある場合、既存のメイン/デフォルト チャネルを管理しないようにします。このキーは所有する組織と選択したアプリと結び付けられますが、組織全体の役割を持ちません。各非公開のプレビュー チャネルは、チャネル スコープのライフサイクル パーミッションが自動的に付与されます。 組織管理者がプレビュー アプリに制限された API キーを作成し、選択
- Have an organization administrator create a secure API key limited to the preview app and select 詳しくは__CAPGO_KEEP_0__ キー API.
- 独自の非公開チャンネルを使用してください
pr-123パブリックチャンネルを使用しないでください--default,--self-assignロールアウトオプションを渡さないでください--delete-linked-bundle-on-upload. - PRバンドルをアップロードしてプロモートするコマンドを1つにし、PRがクローズしたときに所有するチャンネルとバンドルを削除してください
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-foundbundle upload --channel ターミナルウィンドウが欠けているチャンネルを作成し、バンドルをアップロードし、プロモートするフローを1つにします。クリーンアップは原子的で所有権をチェックします:キーは作成したチャンネルとリンクされた、共有されていないバンドルを削除できますが、既存のメイン/デフォルトチャンネル、別のプレビュー キーのチャンネル、または別のキーのバンドルを変更、プロモート、または削除することはできません。
レビューアがQRコードcodeまたはプレビューURLが必要な場合、管理者はアプリにプレビューを有効にする必要があります
npx @capgo/cli@latest app set "$APP_ID" --previewnpx @capgo/cli@latest get-qr "$APP_ID" --channel "$PREVIEW_CHANNEL" --apikey "$CAPGO_PREVIEW_KEY" --urlApp Preview キーはプレビューを有効にすることができません。なぜなら、App Settings の権限がないからです。GitHub Actions で、秘密を含むプレビュー ジョブを実行するには pull_request、を使用しないでください pull_request_target, では、同じリポジトリの PR に制限します。 github.event.pull_request.head.repo.full_name == github.repository.
デバイスへの展開
セクションのタイトル “デバイスへの展開”チャンネルを理解したので、実際のデバイスにライブアップデートを展開する準備ができました。基本的なプロセスは次のとおりです。
- アプリに Capgo SDK をインストールします
- アプリを自分の望ましいチャンネルにリスニングするように設定します
- ビルドをアップロードし、そのチャンネルに割り当てます
- アプリを起動し、更新を待ちます!
詳細なウォークスルーについては、 ライブアップデートの展開 ガイドを参照してください。更新を楽しみましょう!
高度なチャンネル使用: ユーザー セグメンテーション
「高度なチャンネル使用方法:ユーザー分割」チャンネルは開発段階のみに使用されるのではなく、強力なツールとしてのユーザー分割に使用できます。次のような機能を実現します。
- ユーザー層ごとの機能フラグ
- A/Bテスト
- 機能ロールアウトの段階的実施
- ベータテストプログラム
これらの高度な使用例を実装する方法については、以下のガイドを参照してください。 プランとチャンネルを使用して機能フラグとA/Bテストでユーザーを分割する方法.
チャンネルから続けて
「チャンネルから続けて」Capgoを使用している場合 チャンネル チャンネルルーティングとステージドロールアウトの計画に役立つ機能です。 チャンネル チャンネル チャンネル ベータテストソリューション ベータテストソリューションの製品ワークフロー バージョン対象ソリューション バージョン対象ソリューションの製品ワークフロー __CAPGO_KEEP_0__ 環境ベストプラクティス: ステージングに1つのモバイルアプリID Capgo 環境ベストプラクティス: ステージングに1つのモバイルアプリIDの実践的な背景 for the practical context in Capgo Environment Best Practices: Staging with One Mobile App ID.