Skip to content

ネイティブ + OTA チャネル ワークフロー

一般的な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 チャンネルの現在のネイティブパッケージと互換性のないバンドルを作成した場合に何をするかについての質問に答えます。.

このガイドでは、 devproduction チャンネルがすでに存在することを前提としています。必要に応じて作成してください:

ターミナルウィンドウ
npx @capgo/cli@latest channel add production com.example.app
npx @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バージョン、または他のネイティブ依存関係が意図的に変更された場合:

  1. 一致する ネイティブバイナリ (App Store / Play Store、または Capgo ビルド).
  2. 一致するJSバンドルをアップロード --fail-on-incompatible.
  3. Prefer --auto-min-update-version チャンネルがストラテジーにあり、古いバイナリにまだいるデバイスが新しいバンドルを受信しないようにする metadata アップロードしたベースライン後、
  4. __CAPGO_KEEP_0__ --fail-on-incompatible CI (通常の OTA) に戻し --auto-min-update-version チャンネルは metadata).
  1. チャンネルごとに 1 回限り: メタデータ ゲーティングを有効にする

    ターミナル ウィンドウ
    npx @capgo/cli@latest channel set production com.example.app --disable-auto-update metadata

    繰り返し dev もし、そのチャンネルも意図的にネイティブ バイナリを取得する場合。 この切り替え後、チャンネルにアップロードされるすべてのアップロードには --auto-min-update-version または --min-update-version.

  2. チャンネルが意図的にネイティブ バイナリを受信する場合も、同じことを繰り返す必要があります。

    ネイティブ バイナリを配信する

  3. iOS/Android アプリをビルドして提出する --fail-on-incompatible)

    アップロードする必要があるのは、対応する OTA 基準のみ (意図的にネイティブ バイナリを取得しない場合) である。
    npx @capgo/cli@latest bundle upload com.example.app \
    --channel production \
    --auto-min-update-version

    このチャンネルに新しいネイティブパッケージを記録します。後で bundle releaseType / --fail-on-incompatible チェックはその基準を使用します。

  4. ガード付きOTAアップロードを再開

    後続のJSのみリリースでは、両方のフラグを使用します:

    ターミナルウィンドウ
    npx @capgo/cli@latest bundle upload com.example.app \
    --channel production \
    --fail-on-incompatible \
    --auto-min-update-version

FAQ

FAQ

セクションのタイトル「FAQ」 --fail-on-incompatible セクションのタイトル「--fail-on-incompatibleを使用しながら、ネイティブ非互換のバンドルをプッシュすることは可能ですか?」

セクションのタイトル「--fail-on-incompatibleを使用しながら、ネイティブ非互換のバンドルをプッシュすることは可能ですか?」

ネイティブパッケージがアップロードのパッケージとチャンネルのライブバンドルの内容が異なると、フラグはコマンドを故意に失敗させるように設計されています。意図的にネイティブバージョンを上げる場合、そのアップロードのみにフラグを省略してください (そして --auto-min-update-version フラグを使用することができます)。

セクションのタイトル「フラグを使用しないアップロードの1回限りのアップロードは、正しいアプローチですか?」

セクションのタイトル「フラグを使用しないアップロードの1回限りのアップロードは、正しいアプローチですか?」

はい。新しいバイナリを出荷した後、チャンネルのネイティブ基準を進めるには、フラグを他の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).

パス時期フラグのアップロード
OTAJSのみ;ネイティブパッケージはチャンネルに合わせる--fail-on-incompatible + --auto-min-update-version チャンネルが有効の場合に必要 metadata)
ネイティブベースライン新しいネイティブバイナリ + マッチングのJSバンドルなし --fail-on-incompatible;保持 --auto-min-update-version

アップロード、互換性、releaseType、関連フラグのリファレンス

Native + OTA チャネルワークフローから続けて

あなたが使用している 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__ バンドル参照