コンテンツにジャンプ

バージョン変更点

バージョン管理チャンネルを使用してアプリのバージョン管理を実施する方法について説明します。このアプローチにより、ユーザーが互換性のあるアップデートを受けながら、アプリの異なるバージョンを維持できます。

例シナリオ

例シナリオ

例えば、次のようになります。

  • アプリバージョン 1.2.3 (古いバージョン) - プロダクションチャンネルを使用
  • アプリバージョン 2.0.0 (新しいバージョンにバグが含まれる) - v2 チャンネルを使用
  • Live update 1.2.4 (1.2.3 と互換性があります)
  • Live update 2.0.1 (Capacitor 2.0.0 に互換性があります)

Strategy: Major Version の場合、defaultChannel を常に使用する

Strategy: Always DefaultChannel を使用するメジャーバージョン

推奨アプローチ: メジャーバージョンごとに defaultChannel を設定します。 これにより、特定のユーザーグループにアップデートをプッシュできるようになりますが、ダイナミックチャネル割り当てに依存する必要がありません。

// Version 1.x releases
defaultChannel: 'v1'
// Version 2.x releases
defaultChannel: 'v2'
// Version 3.x releases (future)
defaultChannel: 'v3'

1. 新バージョン用チャンネルを作成

セクション “1. 新バージョン用チャンネルを作成”
ターミナル画面
# Create channel for version 2.x
npx @capgo/cli channel add v2

2. バージョン 2.0.0 に対して Capacitor 設定を更新

セクション “2. バージョン 2.0.0 に対して Capacitor 設定を更新”

Capacitorをアップデートしてアプリストア用バージョン2.0.0のビルド前に設定してください。

capacitor.config.ts
import { CapacitorConfig } from '@capacitor/cli';
const config: CapacitorConfig = {
appId: 'com.example.app',
appName: 'Example App',
plugins: {
CapacitorUpdater: {
// ... other options
defaultChannel: 'v2' // All 2.0.0 users will use v2 channel
}
}
};
export default config;

Codeの設定をコピー

Codeの設定をコピー

バージョン間の互換性を維持するために、別々のGitブランチを作成してください:

ターミナルウィンドウ
# Create and maintain a branch for version 1.x updates
git checkout -b v1-maintenance
git push origin v1-maintenance
# Your main branch continues with version 2.x development
git checkout main

Critical: code/APIを提供していない古いアプリにJavaScriptバンドルをプッシュしないでください。適切なブランチから常にアップデートをビルドしてください:

  • v1-maintenanceブランチ: 1.xアプリのアップデート (productionチャネル)
  • mainブランチ: 2.xアプリのアップデート (v2チャネル)

4. 各チャネルにアップロードするバンドル

4. 各チャネルにアップロードするバンドル
ターミナルウィンドウ
# For 1.x updates: Build from v1-maintenance branch
git checkout v1-maintenance
# Make your 1.x compatible changes here
npx @capgo/cli bundle upload --channel production
# For 2.x updates: Build from main branch
git checkout main
# Make your 2.x changes here
npx @capgo/cli bundle upload --channel v2

5. 自分自身の割り当てを有効にする

「5. 自分自身の割り当てを有効にする」のセクション
ターミナルウィンドウ
# Allow apps to self-assign to v2 channel
npx @capgo/cli channel set v2 --self-assign

バージョン 2.0.0 をアプリストアに展開する。すべてのユーザーがこのバージョンをダウンロードした場合(新規ユーザーか、既存のユーザーがアップグレードした場合)、自動的に v2 チャンネルを使用するようになります。なぜなら、アプリパッケージにチャンネルが設定されているからです。

バージョン 3.0.0 をリリースする際に、さらに多くの破壊的変更が含まれる場合:

ターミナルウィンドウ
# Create channel for version 3.x
npx @capgo/cli channel add v3
// capacitor.config.ts for version 3.0.0
const config: CapacitorConfig = {
// ...
plugins: {
CapacitorUpdater: {
defaultChannel: 'v3' // Version 3.x users
}
}
};

今すぐ、任意のバージョンにアップデートをプッシュできます:

  • production チャネル → バージョン 1.x ユーザー
  • v2 チャネル → バージョン 2.x ユーザー
  • v3 チャネル → バージョン 3.x ユーザー

すべてのユーザーがバージョン 2.x にマイグレーションした後 (3-4 か月後):

  1. 削除 defaultChannel Capacitor の設定から削除
  2. v2 チャンネルを削除:
ターミナル画面
npx @capgo/cli channel delete v2
  1. v1-maintenance ブランチを削除:
ターミナル画面
git branch -d v1-maintenance
git push origin --delete v1-maintenance

常に各チャンネルで更新を徹底的にテストし、展開する前に

バージョン 1.x の更新の維持

バージョン 1.x の更新の維持

バージョン 1.x に適合した更新を送信するには:

  1. v1-maintenance branch に切り替え:
ターミナル画面
git checkout v1-maintenance
  1. 変更を加えてコミット:
ターミナル画面
# Make 1.x compatible changes
git add .
git commit -m "Fix for v1.x"
git push origin v1-maintenance
  1. ビルドとプロダクションチャンネルにアップロード:
ターミナル画面
npx @capgo/cli bundle upload --channel production

「続きます」セクション 破壊的な変更 Live Update チャンネル Live Update チャンネル Live Update チャンネル Live Update チャンネル チャンネル ベータテストソリューション ベータテストソリューション