ネイティブ互換性
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 blocks accidental native drift. --auto-min-update-version はアップロードごとに必要になります。チャンネルがこの戦略を使用する場合、 metadata チャンネルがまだこの戦略を使用していない場合は、 metadata まだ使用しない --auto-min-update-version アップロードするまで
オプションのCIゲート:
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)あなたは context:HTMLテキストのフラグメント。長いCapgo UIの文字列の親キー `you_definition`。ページ/エリア: Capgoのマーケティングウェブサイト。役割: 長いマーケティングまたは法的文章。ページ: page disclaimer.astro、page return.astro。メッセージキー `you_definition` (あなたの定義)。 新しいネイティブ code を必要とするバンドルをアップロードしながら --fail-on-incompatibleその旗は、目的の場合にのみそのケースをブロックするために存在します。 プラグイン、Capacitor バージョン、または他のネイティブ依存関係が意図的に変更されたとき:
--fail-on-incompatible.--auto-min-update-version 戦略に設定することにより、古いバイナリにまだいるデバイスが新しいバンドルを受信するのを防ぎます。 metadata その基準を確立した後、--fail-on-incompatible 通常のOTA CIに戻す (そして続けて) --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を使用しないで、native-incompatible bundleをpushすることは可能ですか?」セクションのタイトル「--fail-on-incompatibleを使用しないで、1回のアップロードは正しいアプローチですか?」 --auto-min-update-version はい。新しいバイナリを出荷した後、チャンネルのnative基準を進めるには、チャンネルのnative基準を進めるために1回のアップロードを実行することはサポートされています。--fail-on-incompatibleフラグを他のOTAアップロードに残しておくことで、誤ってnativeの基準を進めることがCIで失敗するようにします。
セクションのタイトル「はい。新しいバイナリを出荷した後、チャンネルのnative基準を進めるには、チャンネルのnative基準を進めるために1回のアップロードを実行することはサポートされています。--fail-on-incompatibleフラグを他のOTAアップロードに残しておくことで、誤ってnativeの基準を進めることが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 がネイティブパッケージの変化を検出する方法と、デバイスに不互換な意味
Auto OTA またはネイティブ
Wire bundle releaseType GitHub アクションまたは GitLab に入力して、CI が正しいパスを選択するようにします。
バージョン対象
Page/area: Capgo solutions marketing page. Role: Section or page heading. Seen in: page solutions/version-targeting.astro. Message key `solutions_version_targeting_title` (Solutions Version Targeting Title). | Page/area: Capgo solutions marketing page. Role: Short UI label or navigation item. Seen in: page solutions/version-targeting.astro. Message key `solutions_version_targeting` (Solutions Version Targeting).
CLI: bundle
__CAPGO_KEEP_0__: バンドル
Native + OTA チャネルワークフローを使用している場合 Native + OTA チャネルワークフロー Native + OTA チャネルワークフローを安全にnativeリリース間でライブアップデートを維持するには、 Native互換性 Native互換性 パッケージ比較ルールのために Auto OTAまたはNative CIブランチングのために バージョン目標 Capgo CLI bundle reference ページ/エリア: Capgoのソリューションマーケティングページ。役割: セクションまたはページヘッダー。見られる場所: page solutions/version-targeting.astro。メッセージキー `solutions_version_targeting_title` (ソリューション バージョン ターゲット イング タイトル)。| ページ/エリア: Capgoのソリューションマーケティングページ。役割: 短UIラベルまたはナビゲーションアイテム。見られる場所: page solutions/version-targeting.astro。メッセージキー `solutions_version_targeting` (ソリューション バージョン ターゲット イング)。