Skip to content

__CAPGO_KEEP_0__

このドキュメントでは、バージョン管理されたチャンネルを使用して、アプリのバージョン管理と互換性のあるアップデートを実現する方法について説明します。

例えば、

「例えば」

次の状況を想定します。

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

戦略: メジャーバージョンでは常に defaultChannel を使用する

「Strategy: Always Use defaultChannel for Major Versions」セクションのタイトル

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

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

ターミナル画面

コピー
2. バージョン 2.0.0 用に __CAPGO_KEEP_0__ の設定を更新
# Create channel for version 2.x
npx @capgo/cli channel create v2

Capacitor の設定をアップデートして、バージョン 2.0.0 をアプリストア用にビルドする前に

Capacitor.config.ts

Update your Capacitor config before building version 2.0.0 for the app store:

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

Critical: 古いアプリケーションが持たないネイティブ code/API に JavaScript バンドルをプッシュしないでください。常に、適切なブランチからアップデートをビルドしてください。

  • 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

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

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

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

バージョン 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 のユーザー

7. クリーンアップ (移行後)

バージョンアップのためのスケーリング

バージョン 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ブランチに切り替えます:
ターミナル画面
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

続ける

続ける

バージョン 1.x に互換性のあるバグ修正を含む v1-maintenance branch を最新の状態に保つが、main から破壊的な変更をマージすることはない Breaking Changes to plan channel routing and staged rollout, connect it with バージョン 1.x に互換性のあるバグ修正を含む v1-maintenance branch を最新の状態に保つが、main から破壊的な変更をマージすることはないです。 Channelsの実装詳細について Channels Channelsの実装詳細について Channels Channelsの実装詳細について Betaテストソリューション Betaテストソリューションの製品フローについて、 バージョン目標ソリューション バージョン目標ソリューションの製品フローについて。