Skip to content

破壊的変更

例えば

__CAPGO_KEEP_0__

  • App version 1.2.3 (old version) - uses production channel
  • アプリバージョン 2.0.0 (新しいバージョンは破壊的変更が含まれています) - v2 チャンネルを使用
  • リアルタイム更新 1.2.4 (1.2.3 と互換性あり)
  • リアルタイム更新 2.0.1 (2.0.0 と互換性あり)

推奨アプローチ: 設定を保存 defaultChannel すべての主なバージョンに対して。 これにより、特定のユーザーグループに更新を常にプッシュできるようになり、ダイナミックチャネル割り当てに頼る必要がなくなります。

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

セクションのタイトル “1. 新バージョン用チャネルを作成する”

ターミナルウィンドウ
1. New Version用のChannelを作成する
# Create channel for version 2.x
npx @capgo/cli channel create v2

バージョン 2.0.0 の Capacitor 設定を更新してください

バージョン 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;

アプリのバージョン間の互換性を維持するために、分離された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

注意 古いアプリにnative code/APIが存在しない場合には、JavaScriptバンドルをpushしないでください。常に、適切なブランチから更新をビルドしてください。

  • v1-maintenance ブランチ: 1.x アプリの更新 (プロダクション チャネル)
  • 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
ターミナル画面
# Allow apps to self-assign to v2 channel
npx @capgo/cli channel set v2 --self-assign

注意

将来のバージョンへの拡大

「将来のバージョンへの拡大」

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

ターミナルウィンドウ
# Create channel for version 3.x
npx @capgo/cli channel create 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. 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

破壊的な変更から続けてください

Breaking Changesから続けて進む

__CAPGO_KEEP_0__が使用されている場合 Breaking Changes Breaking Changesを使用してチャネルルーティングとステージドロールアウトを計画するには、 Channels チャネルについての実装詳細はChannelsを参照してください。 チャネルについての実装詳細はChannelsを参照してください。 チャネルについての実装詳細はChannelsを参照してください。 Beta Testing Solution Beta Testing Solutionの製品ワークフローについて __CAPGO_KEEP_0__ __CAPGO_KEEP_0__ バージョン対象化ソリューション バージョン対象化ソリューションにおける製品ワークフロー向け