Skip to main content

バージョン対象化

驚きの少ないスピード

リスクと技術負債を軽減する。特定のネイティブバージョンにアップデートをプッシュし、変更を段階的に実施し、古いバージョンを安定させる - すべて、更新の配布を完全に制御する。

ネイティブバージョンごとにチャンネル

ネイティブビルドごとにチャンネルを作成する。ネイティブバージョン1.5.0をリリースしたときに、そのチャンネルを作成する。すべてのJSアップデートは、そのチャンネルに流れる。

選択的なアップデート配布

バージョン1.3、1.4、1.5にアップデートをプッシュし、バージョン1.2をスキップする。古いネイティブバージョンが新機能をサポートできない場合にぴったり。

AppFlowの移行準備

AppFlowのバージョンに結びついたチャンネルの動作を再現する。ネイティブビルドごとにCapgoチャンネルが作成され、制御も同じになる。

優雅な非推奨化

__CAPGO_KEEP_0__をサンセットする準備ができたときに古いバージョンにアップデートを送信しないようにしてください。古いバージョンのユーザーは安定したまま、新しいバージョンはアップデートを受け取ります。

AppFlow マイグレーション

AppFlowユーザー:ここにマイグレーションパスがあります

AppFlowはネイティブバージョンと自動的にバンドルを紐付けていました。Capgoを使用すると、より多くの柔軟性を持った同じ動作が得られます。

  • 1
    各ネイティブバージョンごとにチャネルを作成してください(例:「native-1.5.0」)
  • 2
    アプリを使用するチャネルを指定してください
  • 3
    特定のチャネルにバンドルを送信して、ターゲット化された配布を行ってください
  • 4
    必要に応じて、CLIを使用して一度に複数のチャネルに送信することができます
capacitor.config.ts
// Set channel based on native version
import { CapacitorConfig } from '@capacitor/cli'
import { version } from './package.json'

const config: CapacitorConfig = {
  plugins: {
    CapacitorUpdater: {
      defaultChannel: `native-${version}`,
    }
  }
}

// Upload to specific version channels
# Push to all 1.5.x versions
npx @capgo/cli bundle upload --channel native-1.5.0
npx @capgo/cli bundle upload --channel native-1.5.1
npx @capgo/cli bundle upload --channel native-1.5.2

# Skip older versions that can't support new features
# native-1.4.x devices stay on their current bundle

一般的なシナリオ

ネイティブバージョン2.0には、新しい__CAPGO_KEEP_1__を使用する__CAPGO_KEEP_0__が含まれています。新しい__CAPGO_KEEP_1__を使用するJSアップデートは、2.0以上のチャネルにのみ送信してください。

Native version 2.0 has a new plugin API. Push JS updates that use the new API only to 2.0+ channels.

段階的なロールアウト

最新のネイティブバージョンでリスキーな変更をテストしてください。安定したら古いバージョンにプッシュしてください。

バージョンサンセット

ネイティブ 1.x の更新を続けながら、2.x に配信を続ける。古いバージョンのユーザーは最後の安定バージョンに留まる。

バージョンからチャネルへのマッピング

各ネイティブバージョンは、厳密な更新制御のために独自のチャネルを指します。

ネイティブ 2.0
native-2.0.0
最新のバンドル
ネイティブ 1.5
native-1.5.0
最新のバンドル
Native 1.4
native-1.4.0
新しいアップデートはありません

2.0と1.5チャンネルにのみアップデートをプッシュします。 1.4のユーザーは、最後の機能するバンドルで安定します。

Capacitorで作られたアプリ

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

市民、健康、予報アプリは、古いAndroidバージョンと異なるデバイス世代をサポートする必要があります。 バージョン対象化は、各ネイティブビルドを最新の互換性のあるWebバンドルに維持することなく、すべてのユーザーに一つのアップデートパスを強制するのを避けるためです。

アプリの種類
バージョン対象化
ストアのカテゴリ
社会、医療、天気
ソース
パブリックストアデータセット
e-Títuloアプリアイコン

社会

e-Título

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

54.9Mインストール 4.8星評価
Google Playのリストを表示
Conecte SUSアプリアイコン

MEDICAL

Conecte SUS

新しいネイティブシェルと古いネイティブシェルで異なるWebバンドルが必要な健康アプリです。

__CAPGO_KEEP_0__ __CAPGO_KEEP_1__
Google Play リストを表示
Windy.com - 天気予報アプリのアイコン

天気

Windy.com - 天気予報

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

__CAPGO_KEEP_0__ __CAPGO_KEEP_1__
次のリリースのパス

厳密なアップデート制御が必要ですか?

特定のネイティブバージョンにアップデートをターゲットする