Breaking Changes
__CAPGO_KEEP_0__
バージョン管理チャンネルを使用したアプリのバージョン管理についての説明です。このアプローチにより、異なるバージョンのアプリを維持し、ユーザーが互換性のある更新を受け取ることができます。
例えば、次のようになります。
- アプリバージョン 1.2.3 (古いバージョン) - プロダクションチャンネルを使用しています
- App version 2.0.0 (new version with breaking changes) - uses v2 channel
- リアルタイム更新 1.2.4 (1.2.3 と互換性があります)
- リアルタイム更新 2.0.1 (2.0.0 と互換性があります)
Strategy: Always Use defaultChannel for Major Versions
Strategy: Always Use defaultChannel for Major Versions推奨アプローチ: Set a defaultChannel for every major version. This ensures you can always push updates to specific user groups without relying on dynamic channel assignment.
// Version 1.x releasesdefaultChannel: 'v1'
// Version 2.x releasesdefaultChannel: 'v2'
// Version 3.x releases (future)defaultChannel: 'v3'Cloudflare
Capacitor# Create channel for version 2.xnpx @capgo/cli channel create v22. Capacitor のバージョン 2.0.0 に対する設定を更新してください。
バージョン 2.0.0 に対する「Capacitor の設定を更新してください」のセクションCapacitor の設定をバージョン 2.0.0 に対してアプリストアにビルドする前に更新してください。
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;3. Code を分離管理する
セクションのタイトル “3. Code を分離管理する”__CAPGO_KEEP_0__ アプリのバージョン間の互換性を維持するために、分離された Git ブランチを作成します。
# Create and maintain a branch for version 1.x updatesgit checkout -b v1-maintenancegit push origin v1-maintenance
# Your main branch continues with version 2.x developmentgit checkout main注意: code の古いアプリに存在しないネイティブ code/API を期待している場合、JavaScript バンドルを古いアプリにプッシュしないでください。常に、適切なブランチから更新をビルドしてください。
- v1-maintenance ブランチ1.x アプリの更新 (production チャネル) に対して
- main ブランチ2.x アプリの更新 (v2 チャネル) に対して
4. 各チャネルにバンドルをアップロードする
セクションのタイトル “4. 各チャンネルにバンドルをアップロード””# For 1.x updates: Build from v1-maintenance branchgit checkout v1-maintenance# Make your 1.x compatible changes herenpx @capgo/cli bundle upload --channel production
# For 2.x updates: Build from main branchgit checkout main# Make your 2.x changes herenpx @capgo/cli bundle upload --channel v25. 自己割り当てを有効にする
セクションのタイトル “5. 自己割り当てを有効にする””# Allow apps to self-assign to v2 channelnpx @capgo/cli channel set v2 --self-assign6. アプリストアにデプロイ
セクションのタイトル “6. アプリストアにデプロイ””バージョン 2.0.0 をアプリストアにデプロイします。ダウンロードしたすべてのユーザー(新規ユーザーまたはアップグレード中の既存ユーザー)は、自動的に v2 チャンネルを使用します。これは、アプリバンドルに設定されているためです。
将来のバージョンへのスケーリング
「将来のバージョンへのスケーリング」のセクションバージョン3.0.0でさらに破壊的な変更を含めてリリースした場合:
# Create channel for version 3.xnpx @capgo/cli channel create v3// capacitor.config.ts for version 3.0.0const config: CapacitorConfig = { // ... plugins: { CapacitorUpdater: { defaultChannel: 'v3' // Version 3.x users } }};今すぐ、任意のバージョンにアップデートをプッシュできます:
productionチャンネル → バージョン1.xユーザーv2チャンネル → バージョン2.xユーザーv3channel → バージョン 3.x のユーザー
7. マイグレーション後クリーンアップ
セクション「7. マイグレーション後クリーンアップ」バージョン 2.x にすべてのユーザーがマイグレーションした後 (約 3-4 か月):
- 削除
defaultChannelCapacitor の設定から削除 - v2 チャンネルを削除する
npx @capgo/cli channel delete v2- v1-maintenance ブランチを削除する
git branch -d v1-maintenancegit push origin --delete v1-maintenance各チャネルで更新を徹底的にテストすること
バージョン1.xの更新の維持
バージョン1.xの更新の維持バージョン1.xに合致する更新を送信するには
- v1-maintenanceブランチに切り替えます
git checkout v1-maintenance- 変更を加えてコミットしてください:
# Make 1.x compatible changesgit add .git commit -m "Fix for v1.x"git push origin v1-maintenance- バージョン1.xに互換性のあるバグ修正を含むv1-maintenance branchを最新の状態に保つ
npx @capgo/cli bundle upload --channel productionバージョン1.xの破壊的な変更から続けてください
バージョン1.xの破壊的な変更から続けてくださいCapgoを使用している場合 Breaking Changes チャンネルルーティングとステージドロールアウトの計画に使用するには、 Channels チャンネルについての実装詳細はChannelsを参照してください。 Channels チャンネルについての実装詳細はChannelsを参照してください。 Channels チャンネルについての実装詳細はChannelsを参照してください。 ベータテストソリューション ベータテストソリューションで使用する製品ワークフローについては バージョン目標ソリューション バージョン対象ソリューションの製品ワークフローについてです。