Capgoのライブアップデートの互換性を維持するには、ネイティブアプリのバージョン間の互換性チェック、--auto-min-update-version、semverの更新ルール、およびネイティブチャンネル

バージョン対象化

各ネイティブバージョンにのみ、実行できるバンドルを送信

ユーザーはストアから更新するスピードに応じて、複数のネイティブバージョンのアプリが同時に公開されます。Capgo は各バンドルのネイティブ依存関係をチェックし、バージョンルールによって更新をブロックし、各ネイティブバージョンを独自のチャネルにルーティングします。

アップロード前にネイティブの互換性を確認してください

バンドルのネイティブパッケージとプロジェクト内のパッケージを比較して、チャンネル上のバンドルの互換性を確認します。CIで--fail-on-incompatibleを追加してアップロードを停止し、新しいバイナリが必要な場合にアップロードを停止します。

ネイティブ互換性のドキュメント

バンドルのネイティブバージョンを設定してください

チャンネルをメタデータ戦略に設定し、--auto-min-update-versionを使用してアップロードしてください。ネイティブバージョンがバンドルのバージョンよりも下のデバイスは、バンドルのバージョンをスキップし、現在のバンドルを維持します。

バージョン対象化のドキュメント

バージョンをブロックする

--disable-auto-updateのmajor、minor、またはpatchを使用して、デバイスをバンドルから外すことができます。バンドルはデバイスのネイティブバージョンラインを超えてアップロードされません。これらのルールはバージョン番号のみを比較します。ネイティブのcodeを検査することはありません。

アップデートの種類とバージョンのブロック

ネイティブバージョンごとにチャンネルを設定してください

各ネイティブビルドのCapacitor設定でdefaultChannelを設定してください。たとえばv2またはv3を設定してください。各ラインには独自のバンドルがあり、古いラインは最後に機能したバンドルを維持します。

バージョン対象化のドキュメント

機能のしくみ

Capgoを使用するチームは、複数のネイティブバージョンをCapgoで配信する

CI設定で、live update ラインとストア ラインが並行して動作するようにします。以下のコマンドはすべて、Capgo CLI ドキュメントからです。

  1. コミットがネイティブ ビルドが必要かどうかを確認する

    build needed は、チャンネルとネイティブ パッケージを比較します。ストア リリースが必要な場合は、code 1 を出力して終了し、チャンネルが持っていないネイティブ live update が必要な場合は、no を出力します。

    npx @capgo/cli@latest build needed com.example.app --channel production
    build needed リファレンス
  2. チャンネルをメタデータ戦略に切り替える

    これを一度実行してください。以降、各バンドルには最低限のネイティブ バージョンが含まれ、下のバージョンのデバイスはバンドルをスキップします。

    npx @capgo/cli@latest channel set production com.example.app \
      --disable-auto-update metadata
    バージョン対象化ドキュメント
  3. 毎日ライブ アップロード

    --auto-min-update-version を毎回アップロード時に保持してください。--fail-on-incompatible は、チャンネルが持っていないネイティブ code が必要な場合にジョブを停止します。

    npx @capgo/cli@latest bundle upload --channel production \
      --auto-min-update-version \
      --fail-on-incompatible
    ネイティブ互換性ドキュメント
  4. 新しいネイティブ リリース用のバンドルをアップロードしてください

    新しいバイナリがリリースされたときは、--fail-on-incompatible オプションを指定せずに、そのバンドルのアップロードを実行してください。Capgo は、古いビルドがスキップされるように、古いバージョンを上回るようにします。後続のチェックでは、新しいネイティブ パッケージと比較します。

    npx @capgo/cli@latest bundle upload --channel production \
      --auto-min-update-version
    ネイティブとOTA チャネル ワークフロー

アプリフロー移行

Ionic Appflowから来た方?

アプリフローでは、ライブアップデートをネイティブバージョンとマッチさせました。Capgoでは、チャンネルとバージョンルールを使用すると同じ結果が得られます。

  1. ネイティブラインごとにチャンネルを作成してください。例えばv1とv2です。
  2. 各ネイティブビルドのCapacitor設定で、defaultChannelをそのチャンネルに設定してください。
  3. 各バンドルを、そのネイティブラインのチャンネルにアップロードしてください。
  4. Capgo製品をアップロードする際に、--auto-min-update-versionオプションを有効にし、最新のネイティブcodeが必要なバンドルが古いビルドをスキップできるようにします。
アプリフロー移行ガイド
ネイティブラインごとにチャンネル
// capacitor.config.ts in your 2.x native builds
plugins: {
  CapacitorUpdater: {
    defaultChannel: 'v2',
  },
},

# ship a fix to 2.x users only
npx @capgo/cli@latest bundle upload --channel v2 \
  --auto-min-update-version

# 1.x devices stay on their channel's current bundle

一般的なシナリオ

新しいネイティブプラグイン

2.0バージョンのバイナリにカメラプラグインを追加します。--auto-min-update-versionを指定してアップロードすると、1.xデバイスは2.0をインストールするまでスキップされます。

ネイティブ互換性ドキュメント

段階的な露出

ロールアウトオプションを使用して、指定されたチャンネルにバンドルを送信し、インストールと失敗データを監視し、次にそれを推進するかロールバックする。

進化的なロールアウトドキュメント

古いバージョンの廃止

v1チャンネルへのアップロードを停止し、v2は更新を受け続ける。デバイスは最後に機能したバンドルを保持する。

バージョン対象ドキュメント

各ネイティブラインは独自のチャンネルを指します。

ネイティブ3.x

  • v3
    新しいバンドル
    アクティブ
  • ネイティブ 2.x
    v2
    修正のみ
  • ネイティブ 1.x
    v1
    新しいバンドルなし

v3 に機能を送信し、v2 に修正を送信し、v1 に何も送信しない。v1 のデバイスは最後に機能したバンドルを保持する。

Apps built with Capacitor

パブリック アプリは古いと新しいネイティブ バージョンをサポートする必要があります

市民、健康、予測アプリは古い Android バージョンと異なるデバイス世代をサポートできます。バージョン ターゲットは、すべてのユーザーに 1 つのアップデート パスを強制しないように、各ネイティブ ビルドを最新の互換性のあるウェブ バンドルに保持します。

e-Título アプリ アイコン SOCIAL

e-Título

幅広いパブリックデバイスの互換性が必要な市民身分証明書アプリです。

Google Playのインストール
54,900万
ストア評価
4.8
Conecte SUSアプリのアイコン MEDICAL

接続設定

新しいネイティブシェルと古いネイティブシェルの両方をサポートするヘルスアプリです。

Google Playのインストール
2,770万
ストア評価
4.6
Windy.com - Weather Forecast アプリのアイコン WEATHER

Windy.com - 天気予報

バージョンによっては、デバイスの機能とマップのパフォーマンスが異なるため、天気予報アプリです。

Google Playでのインストール
32,900万
ストア評価
4.7

顧客の証明

Capgoを利用するチームの声

5.0/5 開発チームによる評価 9,400+ チーム レビューを読む

Webincode

ウェブインコード

5つ星

NV

ネイト・ファン・ジョル

「セットアップは1日以内で完了しました。チャンネルベースのロールアウトにより、プロダクションユーザーに影響を与える前に、自分のデバイスでテストすることができました。」

セルギウ氏の肖像

セルジウ

リード・デベロッパー、ドライヴォリンゴ・グルーペ

「CapgoのCapgo Capacitor Updaterプラグインは、更新を配信する方法を大幅に変えました。 これまでの1日かけて行っていた作業は、わずか数分で完了します。」

FAQ

バージョン対象化に関する質問

バージョン対象化に関する質問

バージョン対象化に関する質問

バージョン対象化に関する質問

バージョン対象化に関する質問

--disable-auto-update は重大な問題を防ぐのに十分ですか?

いいえ。バージョン規則はバージョン番号のみを比較するので、メジャーまたはパッチリリースで送信されたネイティブの変更はまだ送信されます。--fail-on-incompatible または --auto-min-update-version を使用して、ネイティブのパッケージを確認してください。

ネイティブの互換性ドキュメント

CI は、変更がストア リリースが必要かどうかをどう判断するのですか?

build needed または bundle releaseType をチャネルに実行してください。両方ともネイティブ パッケージのメタデータを比較しますが、ios/、android/、または capacitor.config の下のすべての編集を確認しないため、git でそのパスをゲートする必要があります。

CI での OTA またはネイティブ ビルドを選択してください

Capgo から Ionic Appflow に移行していますが、バージョンに合わせた更新を維持できますか?

はい。defaultChannel を使用してネイティブのラインごとにチャネルを設定するか、--auto-min-update-version を使用してメタデータ戦略を使用してください。Appflow の移行ガイドはセットアップの詳細を説明しています。

Appflow の移行ガイド

バージョンに合わせた更新が既に不互換のバンドルが送信されました。どうすればいいですか?

チャネルを最後の互換性のあるバンドルに戻すか、組み込まれたバンドルを強制し、ネイティブのビルドを送信してください。notifyAppReady() は失敗したバンドルをロールバックしますが、互換性のあるネイティブ code を置き換えるものではありません。

ロールバックのドキュメント

各プラットフォームのネイティブバージョンを、実行できるバンドルに保持する

14日間の無料試用期間中、CIでメタデータ戦略と互換性チェックを設定してください。クレジットカードは必要ありません。