ネイティブ互換性
Capgo がネイティブパッケージのドリフトを検出する方法と、デバイスに不相応な意味
このプラグインのインストール手順とマークダウンガイドを含むセットアップのコピー用
一般的なCapgoセットアップでは 開発 運用 運用 チャンネル。CIはOTAバンドルをアップロードし、 dev次にチャンネルの最新バンドルに切り替えます。 production あなたが準備ができたときに。 --fail-on-incompatible so CI cannot ship a live update that needs new native code by accident.
CIが誤ってライブアップデートを配信してしまうことを防ぐために、 チャンネルの現在のネイティブパッケージと互換性のないバンドルを意図的に作成することがあります。 このページでは、 あなたがチャンネルの現在のネイティブパッケージと互換性のないバンドルを作成した場合に何をするかについての質問に答えます。
If you need the background on why Capgo compares native packages, start with あなたがチャンネルの現在のネイティブパッケージと互換性のないバンドルを作成した場合に何をするかについての質問に答えます。. For a full CI branch that picks OTA vs Capgo Build automatically, see チャンネルの現在のネイティブパッケージと互換性のないバンドルを作成した場合に何をするかについての質問に答えます。.
このガイドでは、 dev と production チャンネルがすでに存在することを前提としています。必要に応じて作成してください:
npx @capgo/cli@latest channel add production com.example.appnpx @capgo/cli@latest channel add dev com.example.app| チャンネル | 誰が受け取るか | 通常のアップロード |
|---|---|---|
dev | 内部/QAビルド | JSのCIプッシュ(および意図的なネイティブベースライン) |
production | ユーザーがストア | リリース用にアップロードされる |
--fail-on-incompatible は、両方のチャネルで 日常のOTAアップロードの良いデフォルトです。 は、アップロード中のバンドル内のネイティブパッケージを、現在のチャネルでライブ中のバンドルと比較します。パッケージが異なると、アップロードはゼロ以外の値を返し、配信されません。
JavaScriptのみの変更の場合、ネイティブパッケージがチャネルと一致する場合:
npx @capgo/cli@latest bundle upload com.example.app \ --channel production \ --fail-on-incompatible \ --auto-min-update-version--fail-on-incompatible ネイティブの誤動作を防ぐ。 --auto-min-update-version アップロードごとに必要です。チャンネルが指定された戦略 (以下の推奨事項) を使用する場合。 metadata チャンネルがまだ指定されていない場合は、省略できます。 metadata アップロードまでのCIゲート (省略可)。 --auto-min-update-version ターミナルウィンドウ
クリップボードにコピー
npx @capgo/cli@latest bundle releaseType com.example.app --channel production# → OTA safe to upload with --fail-on-incompatible# → native stop; ship a native binary first (see below)できない cannot codeをアップロードする必要がある新しいネイティブ --fail-on-incompatibleその旗は、目的のケースをブロックするために存在します。 プラグイン、Capacitorバージョン、または他のネイティブ依存関係が意図的に変更された場合:
--fail-on-incompatible.--auto-min-update-version チャンネルがストラテジーにあり、古いバイナリにまだいるデバイスが新しいバンドルを受信しないようにする metadata アップロードしたベースライン後、--fail-on-incompatible CI (通常の OTA) に戻し --auto-min-update-version チャンネルは metadata).チャンネルごとに 1 回限り: メタデータ ゲーティングを有効にする
npx @capgo/cli@latest channel set production com.example.app --disable-auto-update metadata繰り返し dev もし、そのチャンネルも意図的にネイティブ バイナリを取得する場合。 この切り替え後、チャンネルにアップロードされるすべてのアップロードには --auto-min-update-version または --min-update-version.
チャンネルが意図的にネイティブ バイナリを受信する場合も、同じことを繰り返す必要があります。
ネイティブ バイナリを配信する
iOS/Android アプリをビルドして提出する --fail-on-incompatible)
npx @capgo/cli@latest bundle upload com.example.app \ --channel production \ --auto-min-update-versionこのチャンネルに新しいネイティブパッケージを記録します。後で bundle releaseType / --fail-on-incompatible チェックはその基準を使用します。
ガード付きOTAアップロードを再開
後続のJSのみリリースでは、両方のフラグを使用します:
npx @capgo/cli@latest bundle upload com.example.app \ --channel production \ --fail-on-incompatible \ --auto-min-update-version--fail-on-incompatible セクションのタイトル「--fail-on-incompatibleを使用しながら、ネイティブ非互換のバンドルをプッシュすることは可能ですか?」ネイティブパッケージがアップロードのパッケージとチャンネルのライブバンドルの内容が異なると、フラグはコマンドを故意に失敗させるように設計されています。意図的にネイティブバージョンを上げる場合、そのアップロードのみにフラグを省略してください (そして --auto-min-update-version フラグを使用することができます)。
はい。新しいバイナリを出荷した後、チャンネルのネイティブ基準を進めるには、フラグを他のOTAアップロードに残してください。ネイティブの誤差がCIで失敗するようにするためです。
dev 最初に、次に production?はい、もしそのプロセスに合致する場合。同じルールを 各チャネルごとに互換性のチェックは、対象チャネルに現在公開されているものと比較します。新しいネイティブパッケージを記録する必要があるチャネルは production アップロードするのは dev アップロードが完了したら --fail-on-incompatible正常に動作することを確認し、ネイティブベースラインアップロードを実行し
CI fails and Capgo does not ship that upload. That is the expected outcome. Either the change was accidental (fix the native packages and retry as OTA), or it was intentional (use the native path above).
| パス | 時期 | フラグのアップロード |
|---|---|---|
| OTA | JSのみ;ネイティブパッケージはチャンネルに合わせる | --fail-on-incompatible + --auto-min-update-version チャンネルが有効の場合に必要 metadata) |
| ネイティブベースライン | 新しいネイティブバイナリ + マッチングのJSバンドル | なし --fail-on-incompatible;保持 --auto-min-update-version |
ネイティブ互換性
Capgo がネイティブパッケージのドリフトを検出する方法と、デバイスに不相応な意味
オートOTAまたはネイティブ
Wire bundle releaseType GitHub アクションまたはGitLabにワイヤーする
バージョン対象
コンテキスト: Capgo のソリューションズ マーケティング ページ。役割: セクションまたはページ ヘッダー。見られる場所: page solutions/version-targeting.astro。メッセージ キー `solutions_version_targeting_title` (ソリューションズ バージョン対象タイトル)。 | コンテキスト: Capgo のソリューションズ マーケティング ページ。役割: 短い UI ラベルまたはナビゲーション アイテム。見られる場所: page solutions/version-targeting.astro。メッセージ キー `solutions_version_targeting` (ソリューションズ バージョン対象)。
CLI: bundle
__CAPGO_KEEP_0__: バンドル
あなたが使用している Native + OTA チャネルワークフロー Native + OTA チャネルワークフローを使用して、ネイティブのリリース間でライブアップデートを安全に保つには、 Native Compatibility パッケージ比較ルールのために Auto OTA または Native CI ブランチングのために バージョン目標設定 コンテキスト: Capgo のソリューションマーケティングページ。役割: セクションまたはページヘッダー。見られる場所: page solutions/version-targeting.astro。メッセージキー `solutions_version_targeting_title` (ソリューション バージョン目標設定タイトル)。| コンテキスト: Capgo のソリューションマーケティングページ。役割: 短い UI ラベルまたはナビゲーションアイテム。見られる場所: page solutions/version-targeting.astro。メッセージキー `solutions_version_targeting` (ソリューション バージョン目標設定)。 Capgo CLI bundle reference __CAPGO_KEEP_0__ __CAPGO_KEEP_1__ バンドル参照