メニューに進む

チャンネル

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

デバイスがアップデートを確認するとき、__CAPGO_KEEP_0__ はこの厳格な順序 (優先順位が高い順) でチャンネルを選択します。

強制的なデバイスマッピング (ダッシュボード)

– 特定のデバイスIDをチャンネルに固定する。緊急のデバッグまたは制御されたテストに使用する。常に勝つ。Capgo は最後のoverride書き込み後90日でマッピングを削除します。詳細は「Console and Capgo overrides expire after 90 days」を参照してください。

  1. Cloud override (per-device) via Dashboard or __CAPGO_KEEP_0__ – ダッシュボードまたはCapgoでデバイスのチャンネルを変更すると作成されます。QAユーザーが機能/PRチャンネル間で切り替えるか、ユーザー問題を再現するために使用します。バイナリを再インストールしてもクリアされません。デバイスのoverrideを削除するとクリアされます。同様に90日間の保持期間が適用されます。 Console and API overrides expire after 90 days.
  2. Cloud override (per-device) via Dashboard or API – Created when you change the device’s channel in the dashboard or via API. Use for QA users switching between feature / PR channels or to reproduce a user issue. Reinstalling the binary does not clear it; deleting the device override does. The same 90-day retention applies.
  3. プラグイン setChannel() ローカル チャネル – アプリが呼び出すと作成されます。 setChannel() バックエンドがターゲット チャネルが自己割り当てを許可するかどうかを検証し、選択したチャネルはそのデバイス上でローカルに保存され、即効果を発揮し、デバイス オーバーライド UI に表示されません。
  1. Capacitor設定 defaultChannel (テストビルドのデフォルト) – __CAPGO_KEEP_0__に存在し、強制/オーバーライド/ローカルチャンネルが存在しない場合、アプリケーションはこのチャンネルから起動します (例: ). capacitor.config.* テストフライト/内部ビルド用に設計されており、テスターは自動的にプレリリースチャンネルにアクセスします。生産ビルドでは通常、この設定を空白にします。 beta, qa, pr-123クラウドデフォルトチャンネル (主なパス ~99% のユーザー)
  2. – ダッシュボードでデフォルトチャンネルをマークした場合、通常のエンドユーザー (強制なし、ダッシュボード/ __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__を使用してください。 defaultChannel config またはデバイスごとのオーバーライドで設定します。
  • 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日間の最後のオーバーライド書き込み後. チャンネル更新のチェックインはそのタイムスタンプをリセットしない。オーバーライドを書き直す(または自分で削除する)ことだけがタイムスタンプを変更する。

This is not the same as デバイスインベントリの保持. Inventory removes devices that have not connected to Capgo for 90 days. Override cleanup removes the mapping even if the device is still active.

この割り当てがこのクリーンアップによって削除されない場合:

  • Set defaultChannel in capacitor.config.* (再インストールで残る;後で変更するには新しいネイティブバイナリが必要)。
  • Call setChannel() コンテキスト:Capgo UIの長い文字列から切り取られたHTMLテキストフラグメント (親キー`appflow_migration_step2`). ページ/エリア:Appflow比較/移行マーケティングコピー。役割:ウェブサイトコピーの文。見つける場所:ionic-appflow.astroページ。 setChannel() アプリから。 プラグイン5.34.0 / 6.34.0 / 7.34.0 / 8.0.0以降の場合、その割り当てはローカルであり、このクリーンアップによって削除されない。アプリを再インストールすると、クリアされるため、アプリは再び呼び出す必要がある。

__CAPGO_KEEP_0__ チャンネル デバイス タブとデバイスオーバーライドUIのみ、コンソールとパブリック API アサインメントをリストします。 これらは、チャンネル上のすべてのデバイスをリストせず、またローカル API アサインメントもリストしません。 setChannel() __CAPGO_KEEP_0__ チャンネル デバイスタブに表示されるオーバーライドの保持ポップオーバー: コンソールオーバーライドは90日後に期限切れ

Capgo チャンネル デバイスタブに表示されるオーバーライドの保持通知
デフォルトのチャンネル動作

1つのデフォルト(最も一般的なケース) defaultChannel in the Capacitor config will receive updates. When you do choose to mark defaults, keep these patterns in mind:

  • __CAPGO_KEEP_0__ config __CAPGO_KEEP_0__ assignments
  • プラットフォーム固有のデフォルト – プラットフォームごとにチャンネルを分割する場合 (例えば、iOSのみ有効の場合、Androidのみ有効の場合、Electronのみ有効の場合)、それぞれのプラットフォームのデフォルトとしてマークします。 iOSデバイスはiOSのデフォルトに、AndroidデバイスはAndroidのデフォルトに、ElectronアプリはElectronのデフォルトにアクセスします。 ios-production クラウドデフォルトと両方が同じ決定層を占めていることを思い出してください。クラウドデフォルトを設定すると、__CAPGO_KEEP_0__ 設定に値を複製する必要がなくなります—生産ビルドの場合、空白のままにします。テスターまたはQAに意図的にビンナリを送信したい場合は、非生産チャンネルに始まるように予約します。クラウドデフォルトが異なる場合でも。 android-production デフォルトをいつでもダッシュボードで変更できます。チャンネルを開き、Manage in App設定をクリックしてください 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 QA defaultChannel 非生産チャンネル

Manage in App設定 生産ビルド、をクリックすると アプリ情報。デフォルトはチャンネルページでなくなる。デフォルトを入れ替えると、新しいデバイスは即座に新しいルーティングに従い、既存のデバイスはチェックインの次の時点で通常の優先順位ルールに従う。

オンボーディング中、最初のチャンネル(チームはほとんどが “Production” と名付けている)を作成しますが、何もロックされていません。チャンネルを任意の時点で変更または削除できます。追加のチャンネルを設定するには:

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

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

  • 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(アプリ設定で管理 チャンネルページから)にあります。詳細は「デフォルトチャンネル動作」で確認してください。
  • プラットフォームフィルタ: チャンネルごとに、__CAPGO_KEEP_0__、__CAPGO_KEEP_1__、または__CAPGO_KEEP_2__に更新を配信することを許可または禁止できます。 iOS, Android自動ダウングレードを無効にする: デバイスのネイティブアプリのバージョンがチャンネルのバンドルよりも新しい場合に、更新を送信しないようにします (例えば、デバイスが1.2.3のバージョンで、チャンネルが1.2.2のバンドルを持っている場合)。 Electron 開発用ビルドを許可する: 開発用ビルドに更新を許可します (テストに便利です)。__CAPGO_KEEP_0__:
  • __CAPGO_KEEP_0__
  • 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.
  • デバイスの自己割り当ての許可: アプリが実行時、このチャンネルに切り替えることができます。 有効にしないと、 setChannelこのチャンネルでは失敗します。 __CAPGO_KEEP_0__: setChannel will fail for this channel. CLI: --self-assign / --no-self-assign.
  • )。 ご覧ください。all, zip, delta, zip_from_builtin, delta_from_builtinパッケージの更新 コンソールのドロップダウンと各モードがどのように役立つかについては、 進歩的なロールアウト

「進歩的なロールアウト」のセクション

Section titled “Progressive rollouts”

チャンネルは、デバイスの固有の基準よりも高いメジャーバージョンのターゲットバンドルをブロックすることで、安定したバンドルを維持しながら、ステイシーコホートに別のロールアウトターゲットを徐々に公開できます。すべてのユーザーにチャンネルを切り替えることなく、更新を一時停止、再開、昇格、ロールバック、自動失敗応答の自動構成を行うことができます。 進歩的なロールアウト 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)。チャンネルはすでに存在する必要があります (channel set チャンネルを作成しない):

ターミナル画面
# 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
# Production channel: store builds on real devices, no emulators
npx @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 channel
await CapacitorUpdater.setChannel({ channel: 'beta' });
// Optionally trigger an immediate update check after switching
await CapacitorUpdater.setChannel({
channel: 'beta',
triggerAutoUpdate: true
});

バージョンタグについて。

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

To deploy a live update, you need to upload a new JS bundle build and assign it to a channel. You can do this in one step with the Capgo CLI:

ライブアップデートをデプロイするには、JS バンドルビルドをアップロードし、チャンネルに割り当てる必要があります。__CAPGO_KEEP_0__ と __CAPGO_KEEP_1__ を使用して 1 つのステップで実行できます。
npx @capgo/cli@latest bundle upload --channel=Development

コピーする (クリップボードにコピーする)。 Development チャンネル。 そのチャンネルに接続されているアプリは、次回の更新をチェックするときにアップデートを受け取る。

また、チャンネルにビルドを割り当てることもできます。 “バンドル”セクションのCapgoダッシュボードで、メニュー アイコンの隣にあるビルドをクリックし、「チャンネルに割り当てる」を選択して、そのビルドのチャンネルを選択してください。

バンドルバージョニングとチャンネル

バンドルバージョニングとチャンネル

Capgoのバンドルは、アプリ全体にグローバルで、個々のチャンネルに特有のものではありません。 同じバンドルを複数のチャンネルに割り当てることができます。

バンドルバージョンを設定する際は、 semantic versioning with Capgo’s Semver Tester のセムバーターアイテムを使用することをお勧めします。 1.2.3-beta.1.

例えば、ベータ リリースの場合、バージョンは npx @capgo/cli@latest bundle upload --auto-bump CI では、ローカル バージョンが既にアップロードされている場合、 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 with no previous Capgo version). You cannot combine it with --bundleを参照してください。CLI reference.

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

  • ビルド間の関係を明確に伝えることができます。 1.2.3-beta.1 は明らかに 1.2.3.
  • のプレリリースです。
  • バージョン番号をチャンネル間で再利用できるため、混乱を減らすことができます。 1.2.3明確なロールバックパスを提供します。必要に応じて 1.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など

チャンネル: など は推奨アプローチですが、厳密には必要ではありません。重要なのは、ビルド間の関係を明確に伝え、チームの開発プロセスと一致するバージョニングスキームを見つけることです。

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

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

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

  1. チャンネル名をクリック
  2. 戻したいビルドを探し、王冠アイコンをクリック ロールバックビルド
  3. 確認

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

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

チェックアウト CI/CD統合 Capgoの自動化についてもっと学びたい場合は、ドキュメントを参照してください。

最小権限のプルリクビュー

最小権限のプルリクビュー

使用する アプリプレビュー API キーを使用して、CI がプルリクビューごとに一時的なチャンネルを 1 つ作成する必要がある場合、既存のメイン/デフォルト チャンネルの管理は行わないでください。キーは所有する組織と選択したアプリと結びついており、単に組織全体の役割を持ちません。各非公開のプレビュー チャンネルは、チャンネルスコープのライフサイクル権限が自動的に付与されます。

  1. 組織管理者がプレビュー アプリに限定された安全なAPI キーを作成し、選択 アプリプレビュー参照してください API キー.
  2. 独自の非公開チャンネルを使用してください pr-123パブリックチャンネルを使用しないでください --default, --self-assignロールアウトオプションを渡さないでください --delete-linked-bundle-on-upload.
  3. 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-found

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

レビューアがQRコードcodeまたはプレビューURLが必要な場合、アプリケーションにプレビューを有効にする必要があります。

ターミナルウィンドウ
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 Settings の権限がないため、GitHub Actions でシークレットを含むプレビュー ジョブを実行する必要があります。 pull_request、ではなく pull_request_target, それらの制限を同じリポジトリのPRに github.event.pull_request.head.repo.full_name == github.repository.

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

  1. アプリにCapgo SDKをインストールする
  2. アプリを自分の望むチャンネルにリスニングするように設定する
  3. ビルドをアップロードし、そのチャンネルに割り当てる
  4. アプリを起動し、更新を待つ!

詳細なウォークスルーについては、 ライブアップデートの展開 ガイドを参照してください。更新を楽しんでください!

高度なチャンネル使用: ユーザー セグメンテーション

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

チャンネルは開発段階のみに使用されるのではなく、強力なツールとしてのユーザー分割に使用できます。次のような機能を実現します。

  • 異なるユーザータイプ向けの機能フラグ
  • 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.