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

チャンネル

チャンネルは初めてですか? 3つの短いチャンネル解説動画を視聴して、 デフォルトのルーティング、デバイス自身による割り当て、コンソールからの上書きが実際に動作する様子を確認できます。

この @capgo/capacitor-updater 手法 setChannel() と unsetChannel() 本ガイドの手法はAndroidとiOSでのみサポートされています。ブラウザのプレビューではチャンネルのルーティングは変更されません。

デバイスが Capgo にアップデートをリクエストすると、使用するチャンネルは次の順序(優先度の高い順)で決まります:

  1. デバイスマッピングの強制:デバイスIDが特定のチャンネルに明示的に強制されている場合( デバイス チャンネルページのタブ)では、そのチャンネルが常に優先されます。強制マッピングは console/API による上書きです。Capgo は、最後に上書きが書き込まれてから90日後にこれらを削除します。詳細は Console と API のオーバーライドは失効します.
  2. クラウド上書き (Dashboard または Public API): Dashboard または Public API でデバイスのチャンネルを変更すると、そのデバイス ID に紐付いた上書きが書き込まれます。アプリを再インストールしても 決して 上書きはクリアされません。上書きを削除すればクリアされます。同じ90日間の保持期間が適用されます。
  3. プラグイン setChannel() (ローカル): 現在のプラグインバージョンでは、 setChannel() バックエンドでの検証後、デバイスにチャンネルを保存します。これは Dashboard の上書きではありません。updater 8.51.0 以降の Android および iOS では、 persistDefaultChannelOnReinstall デフォルトでは trueに設定されます。そのため、OSがアプリデータを復元し、 persistDefaultChannelOnReinstall が残ります true。 unsetChannel() ローカルの選択を明示的にクリアするため。
  4. Capacitor の設定 defaultChannel (テストビルドのデフォルト): 内部 / ベータ / テストビルドでは、以下を設定できます defaultChannel (レガシーキー channel) を capacitor.config.* に含めることで、テストデバイスがプレリリースチャネル(例: beta, pr-123)で起動します。設定がない場合、デバイスはクラウドのデフォルトに移ります。本番ビルドでは通常、これを未設定のままにします。
  5. Cloud Default Channel (ユーザーの約99%が利用する主要戦略): ほぼすべての実ユーザーが到達するメインの本番チャネルです。新規デバイスは、強制もオーバーライドもなく、ローカルの setChannel()、設定なしで defaultChannel これを使用します。変更すると、数秒で全員にロールアウト(またはロールバック)され、新しいバイナリは不要です。

なぜ クラウドデフォルト がメインパスなのか:

  • ネイティブバイナリの再ビルドや再公開なしで、即座にロールアウトまたはロールバックできます。
  • iOS、Android、Electron の動作を1か所で管理できます。
  • より安全です:デフォルトを切り替える前に、バンドルの存在と設定の正確性を確認できます。
  • 監査可能な変更(チームメンバーは UI / ログで誰が何を 변경したかを確認できます)。 設計原則:上位レイヤー(force / override / config)は 例外 (デバッグ用の単一ユーザー、QAでの切り替え、テストビルドのデフォルト)。通常ユーザーはクラウドのデフォルトに従います。

変更 クラウドデフォルト チャネルが影響します 新着 次の通常デバイス:

  • 強制されていない
  • クラウドオーバーライドがまだない
  • アプリレベルの defaultChannel 定義がない

テストビルドが同梱されて出荷された場合 defaultChannel: 'beta' その後クラウドデフォルトを〜に変更した場合 production、起動時に beta config経由で割り当てられたデバイスは、優先度の高い割り当てが適用されるか、Live Updateなしでバイナリをリリースするまで、その状態を維持します。 defaultChannel. 強制設定、クラウドオーバーライド、またはローカルの setChannel() 割り当てを削除しても設定値は削除されません。新しいバイナリが適用されるまで、そのフォールバックは維持されます。

以下の操作をしない限り、デバイスは現在のチャンネルに留まります:

  • 別のチャンネルへ強制的に移動させる(コンソールまたは Public API)。
  • ダッシュボードまたは Public API でクラウドオーバーライドを変更する。
  • 呼び出す setChannel() (現在のプラグインバージョンでのローカル割り当て)。
  • デバイスが使用中のチャンネルを削除またはアーカイブする(次回のチェック時に優先順位に従って再びフォールバックします)。
  • コンソール/API のオーバーライドが90日後に期限切れになるまで待つ。
  • 呼び出す unsetChannel() ローカルの setChannel() 割り当てをクリアするため。これはコンソール/API のオーバーライドも、アプリで設定されたものも削除しません。 defaultChannel; 通常の優先順位が再び適用されます。
  • アプリを再インストールすると、古い updater バージョンやアプリデータが復元されない場合にローカル割り当てがクリアされます。Android および iOS で updater 8.51.0 以降の場合、 persistDefaultChannelOnReinstall デフォルトでは true、このオプションが有効な間のみ、復元されたアプリデータによってローカルの選択が保持されます true。Console/API のオーバーライドには影響しません。

プラットフォームに対してチャネルが無効化されている場合(iOS / Android / Electron のトグルを参照)、本来選択されるはずだった場合でも、選択はそれをスキップして次のルールにフォールバックします。

注: 設定 defaultChannel は、変更には新しいバイナリが必要であることを意味します。一般的な本番環境の制御ではなく、テスト/QA 用に意図的に使用してください。

capacitor.config.ts
// Example: a TestFlight or internal QA build defaults to the beta channel.
const config = {
plugins: {
CapacitorUpdater: {
defaultChannel: 'beta', // Test build default. Omit in production so users attach to cloud default.
// legacy key: channel
},
},
};
export default config;

後からダッシュボードのデフォルトを変更した場合、 productionすでに他のチャンネルにいるデバイス(config、override、force 経由)は自動では移動しません。新規デバイス(または override/force をクリアしたデバイス)だけがそれを反映します。


まず、チャンネルページを見てみましょう。アクセスするには、 アプリをクリックし、 次に、 チャンネルタブをクリックします。.

チャンネル一覧

ご覧のとおり、右下にプラスボタンがあります。(1 (画像内)クリックすると、新しいチャンネルを作成するためのモーダルが開きます。

新規チャンネル

その後、以下をクリックすると、 Add リストに新しいチャンネルが表示されます。

チャンネル作成後

チャンネルの設定が無効な場合があります。その場合、大きな警告が表示され、 Misconfigured 列には次のように表示されます: Yes 1つ以上のチャンネルに対して表示されます。 詳細についてはこちらをご覧ください こちら

Webアプリからチャネルを削除するには、アプリの チャンネル タブを開き、該当するチャネルの行を探します。 アクション 列でゴミ箱アイコンをクリックし、確認ダイアログで 削除 をクリックします。

削除用のゴミ箱アイコンが表示されているチャネル行の操作列

ゴミ箱アイコンが表示されない場合、アカウントには channel.delete そのアプリの権限が必要です。組織またはアプリの管理者に、チャネルを削除できるロールの付与を依頼するか、権限を持つ API キーを使用してチャネルを削除してください:

ターミナル
npx @capgo/cli@latest channel delete <channel-name> <app-id>

組織およびアプリにバインドされた アプリプレビュー キーは、作成した非パブリックのプレビューチャネルとそのバンドルのみをアトミックに削除できます channel delete <preview-channel> <app-id> --delete-bundle。既存のデフォルト/メインチャネル、他のプレビューキーのチャネル、または他のキーのバンドルを変更または削除することはできません。 API キー 最小権限設定については、

チャネル名をクリックしてチャネルページを開きます。これはモーダルではなく、タブ付きのフルページです。

チャネル設定
  • ダッシュボード:このチャネルの現在のバンドルの採用状況とインストール統計。
  • 情報:以下のチャネル設定に加え、段階的ロールアウトと Test Update API。
  • デバイス:コンソールまたは Public API から作成された強制マッピングのみ。現在このチャネルにあるすべてのデバイスが表示されるわけではなく、使用したデバイスも表示されません。 setChannel()。詳細は Console と API のオーバーライドは失効します.
  • 履歴:このチャネルの設定とバンドル変更。
  • プレビュー:リンクされたバンドルのブラウザ内およびネイティブプレビュー。 アプリ情報 してください。

タブに留まっています。 情報 設定はこの順序で表示されます:

まず、 デフォルトのダウンロードチャネル ステータスバッジであり、トグルではありません。 提供中 は、このチャンネルが新規デバイスのクラウドデフォルトであることを意味します。 App設定で管理するには をクリックして、デフォルトを アプリ情報で変更します。プラットフォームごとのデフォルト(iOS、Android、Electron用)については、同じセクションを参照してください。

2つ目は、 IOS の設定です。これが false の場合、iOS デバイスはこのチャンネルからアップデートをダウンロードできなくなります。

3つ目は、 Android の設定です。これが false の場合、Android デバイスはこのチャンネルからアップデートをダウンロードできなくなります。

4つ目は、 Electron の設定です。これが false の場合、Electron アプリはこのチャンネルからアップデートをダウンロードできなくなります。

5つ目は、 Disable auto downgrade under native 設定です。これがtrueの場合、ネイティブバージョンからのダウングレードはできなくなります。つまり、すでに 1.2.0 バージョンをApp StoreやPlay Storeにアップロードしていて、チャンネルのバージョンを 1.1.0 に設定しようとすると、アップデート(ダウングレード)は失敗します。

6つ目は Disable auto updateです。この設定は非常に複雑なので、詳しくはこちらで確認できます。 こちら

7つ目は Download format 設定です。デバイスがフルZIPをダウンロードするか、変更された差分ファイルのみをダウンロードするか、両方の最適な組み合わせを選ぶかを決定します。詳しくはこちらをご覧ください。 ダウンロード形式.

8つ目は Allow development buildです。これがtrueの場合、development buildはこのチャンネルからアップデートをダウンロードできるようになります。そうでない場合、アップデートリクエストのうち、 prod falseに設定されているものはすべて拒否されます。これは主にテスト目的で役立ちます。

9番目は Allow production buildです。false の場合、本番(ストア)ビルドはこのチャネルからの更新を受け取りません。実際のユーザーに提供するチャネルでは true にしてください。

10番目は Allow Emulatorsです。false の場合、Capgo はエミュレーターからの更新リクエストをすべて拒否します。主にテスト目的で役立ちます。

11番目は Allow physical devicesです。false の場合、Capgo は実機(スマートフォンやタブレット)からの更新リクエストを拒否します。本番チャネルでは true にしてください。

12番目は Allow devices to self dissociate/associateです。true の場合、 setChannel メソッドが Android と iOS で利用可能になります。false に設定して呼び出そうとすると setChannel このチャンネルを指定すると、呼び出しは失敗します。

の下部で 情報 タブで、展開します API のテストアップデート。Capgo は、curl コマンドを表示します。対象は /updates このチャンネルのサンプルデバイスです。

キャッシュのため、変更が API に表示されるまで最大 60 秒かかることがあります。チャンネルをテストできない場合、コンソールに警告が表示されます。チャンネルには少なくとも 1 つのプラットフォーム(iOS または Android)、本番ビルド、実機が必要で、さらにデフォルトのダウンロードチャンネルであるか、デバイスの自己割り当てを許可する必要があります。

アップデート通知を送信

「更新通知を送信」セクション

リンクされたバンドルを変更した後、コンソールから更新通知の送信を求められることがあります。 アップデート通知を送信これにより、サイレントプッシュがキューに追加され、そのチャネルのデバイスがすぐに新しいバンドルを確認します。まず、アプリの「通知」タブで Android と iOS のプッシュ認証情報を設定してください。

Console と API のオーバーライドは失効します

「コンソールと API のオーバーライドの有効期限」セクション

強制マッピングと Dashboard/Public API チャネルのオーバーライドは、最後のオーバーライド書き込み 90日間 後に削除されます。直近のデバイスチェックインでは、そのタイマーはリセットされません。このクリーンアップ後も残る割り当てを設定するには、 defaultChannel Capacitor 設定で指定します(再インストール後も維持されますが、変更には新しいバイナリが必要です)、または setChannel() Android または iOS アプリから呼び出します @capgo/capacitor-updater 5.34.0+, 6.34.0+, 7.34.0+、または 8.0.0+ プラグインのメジャーバージョン向けです。これらのバージョンは割り当てをローカルに保存するため、90日間のクリーンアップを回避できます。以前のバージョンは、同じクリーンアップの対象となるバックエンドのオーバーライドを書き込みます。Android および iOS で、updater 8.51.0 以降の場合、 persistDefaultChannelOnReinstall デフォルトでは trueそのため、ローカル選択が再インストール後も維持されるのは、OS がアプリデータを復元した場合のみです。 persistDefaultChannelOnReinstall が残ります true。 persistDefaultChannelOnReinstall: false による再インストールでは、アプリデータが復元されていても、そのローカル選択がクリアされる可能性があります。 unsetChannel() を使用して、そのローカル選択を明示的にクリアしてください。

Capgo チャンネルのDevicesタブに表示されているOverride保持期間のポップオーバー:consoleのoverrideは90日後に期限切れとなります
チャネルの「Devices」タブでのオーバーライド保持期間。デバイス ID をチャネルに強制適用する場合にも、同じ通知が表示されます。

とは別物です。 デバイスインベントリの保持期間。インベントリは、Capgo に 90 日間接続していないデバイスを削除します。オーバーライドのクリーンアップは、デバイスがアクティブな場合でもマッピングを削除します。詳細: ConsoleおよびAPIのオーバーライドは90日後に期限切れになります.

ダウンロード形式

「Download format」セクション

チャンネルを開き、そのまま 情報 タブと比較してください。 ダウンロード形式 設定リストの「Disable auto update」の下にあります。

Capgo チャンネルの Download format ドロップダウン(Zip + delta、Full zip only、Delta only、Full zip from store build only、Delta from store build only が表示されている)
チャンネルの Information タブにある Download format。新規チャンネルではデフォルトで Zip + delta になります。

この設定は、このチャンネルのデバイスがアップデートを確認したときに Capgo が何を送信するかを決めます。基本は Zip + delta 特定の形式を強制する必要がない限り、そのままにしてください。

コンソール内のラベルCLI / API の値デバイスがダウンロードする内容
Zip + delta(デフォルト)all各デバイスは、自身がサポートする最適なパッケージを取得します。Deltaをサポートするプラグインバージョンのデバイスは、bundleにdeltaファイルがある場合、変更されたdeltaファイルのみをダウンロードします。Deltaをサポートしていない古いプラグインバージョンのデバイス、またはdeltaファイルなしでアップロードされたbundleの場合のみ、フルzipにフォールバックします。
Full zipのみ対応zipdeltaファイルが存在する場合でも、すべてのデバイスがbundleのzip全体をダウンロードします。
Deltaのみdelta変更されたdeltaファイルのみをダウンロードします。Deltaをサポートしていない古いプラグインバージョンのデバイスは、bundleにフルzipがある場合、引き続きフルzipを受け取ります。
ストアビルド時のみフルzipzip_from_builtinデバイスがストアビルドのままの場合のみフルzipを使用します。最初の live update 以降は、Capgo が再び zip + delta を提供します。
ストアビルド時のみDeltadelta_from_builtinデバイスがストアビルドのままの場合のみDeltaを使用します。最初の live update 以降は、Capgo が再び zip + delta を提供します。

を使用すると、 Zip + delta, 一部のフルZipダウンロードが発生するのは想定内です。Deltaサポートのないプラグインバージョンを搭載した古いNative Buildをまだ使っているデバイス(メジャーバージョンが 5.10.0, 6.25.0、または 7.0.35 以下の場合)から発生します。詳細は 差分アップデート.

この ストアビルド とは、Capgo のアップデート前において、App Store または Play Store のバイナリに同梱されるWebアセットです。使用する from store build only モードは、ストアビルド後の初回アップデートをフルZipのみまたはDeltaのみにし、以降のアップデートでは両方を使えるようにするためのものです。

Capgo は、zipのみのチャンネルとdeltaのみのbundleをペアにしたり、その逆はしません。コンソール、CLI、および API チャンネル 保存を拒否し、不足しているパッケージをアップロードするか、モードを切り替えるよう促します。

CLI からも同じ値を設定できます。なお、チャンネルは既に存在している必要があります:

ターミナル
npx @capgo/cli@latest channel set production com.example.app --update-package zip

有効な値: all, zip, delta, zip_from_builtin, delta_from_builtin.

段階的なロールアウト

「Progressive rollouts」セクション

チャンネル 情報 タブには 段階的ロールアウト セクションがあり、 ロールアウト対象 と 安定版フォールバック, ロールアウト対象を変更, パーセンテージを適用、およびアクション ロールアウトを完了, ロールアウトをロールバック, ロールアウトを有効化, ロールアウトを無効化, ロールアウトを一時停止や ロールアウトを再開.

Capgo チャネルでの段階的ロールアウト制御
段階的ロールアウト制御は、チャネルの Information タブ上部に表示されます。

読む 段階的なロールアウト 有効にする前に。このガイドでは、アップロードのルーティング(Auto(推奨) / ロールアウト対象 / Stable を置き換え; CLI --stable / API target: "stable" で上書きする場合)、その このチャネルは段階的ロールアウトを使用しています bundle-link ダイアログと、安全なワークフローを Observe と ログ分析.

使用している場合 チャンネル チャンネルルーティングと段階的ロールアウトを計画するには、次と組み合わせてください: チャンネル Channelsの実装の詳細については、 チャンネル Channelsの実装の詳細については、 ベータテストソリューション Beta Testing Solution のプロダクトワークフロー向け、 バージョンターゲティングソリューション Version Targeting Solution のプロダクトワークフロー向け、および Capgo 環境のベストプラクティス:1つのモバイルアプリIDでステージング 実践的な内容については、Capgo の環境ベストプラクティス「単一の Mobile App ID でのステージング」を参照してください。