変更点
このプラグインのインストール手順とフルマークダウンガイドを含むセットアッププロンプトをコピーします。
このドキュメントでは、バージョン管理されたチャンネルを使用してアプリのバグ修正を管理する方法を説明します。このアプローチにより、ユーザーが互換性のある更新を受けながら、アプリの異なるバージョンを維持できます。
例えば、以下のような状況があります:
- アプリバージョン 1.2.3 (古いバージョン) - 製品チャネルを使用
- アプリバージョン 2.0.0 (新しいバージョンは破壊的変更が含まれています) - v2 チャンネルを使用
- リアルタイム更新 1.2.4(1.2.3 と互換性あり)
- リアルタイム更新 2.0.1(2.0.0と互換性があります)
戦略: 主要バージョンでは常にdefaultChannelを使用する
メインバージョンでは常にdefaultChannelを使用する戦略推奨アプローチ: 設定を保存 defaultChannel すべての主なバージョンに対して。 これにより、特定のユーザーグループに更新を常にプッシュできるようになり、ダイナミックチャネル割り当てに頼る必要がなくなります。
// Version 1.x releasesdefaultChannel: 'v1'
// Version 2.x releasesdefaultChannel: 'v2'
// Version 3.x releases (future)defaultChannel: 'v3'セクションのタイトル “1. 新バージョン用チャネルを作成する”
ターミナルウィンドウ# Create channel for version 2.xnpx @capgo/cli channel create v22. バージョン 2.0.0 の Capacitor 設定を更新する
バージョン 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を分離管理する」アプリのバージョン間の互換性を維持するために、分離した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注意: 古いアプリにnative code/APIが存在しない場合には、JavaScriptバンドルをpushしてはいけません。適切なブランチから常に更新をビルドしてください:
- 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-assign注意
将来のバージョンへの拡大
「将来のバージョンへの拡大」セクションバージョン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ユーザーv2channel → バージョン 2.x のユーザーv3channel → バージョン 3.x のユーザー
7. マイグレーション後処理
マイグレーション後処理 (7)すべてのユーザーがバージョン 2.x にマイグレーションした後 (約 3-4 か月後):
- 削除
defaultChannelCapacitor の設定から削除 - バージョン 2 のチャンネルを削除
npx @capgo/cli channel delete v2- v1-maintenance ブランチを削除
git branch -d v1-maintenancegit push origin --delete v1-maintenanceこのアプローチは、ユーザーが使用しているアプリのバージョンに合致する更新のみを受け取るようにします
v2 チャネルを __CAPGO_KEEP_0__ に安全に削除することができます。ユーザーがチャネルオーバーライドを保持している場合でも、自動的にプロダクション チャネルから更新を受け取るようになります。
バージョン 1.x の更新の維持バージョン 1.x の更新の維持
- バージョン 1.x に対応する更新を送信するには:
git checkout v1-maintenance- 変更を加えてコミットしてください:
# Make 1.x compatible changesgit add .git commit -m "Fix for v1.x"git push origin v1-maintenance- ビルドしてプロダクションチャンネルにアップロードしてください:
npx @capgo/cli bundle upload --channel productionメインから破壊的な変更の後は続けてください
__CAPGO_KEEP_0____CAPGO_KEEP_1__ __CAPGO_KEEP_2__ __CAPGO_KEEP_3__ __CAPGO_KEEP_4__ __CAPGO_KEEP_5__ __CAPGO_KEEP_6__ __CAPGO_KEEP_7__ __CAPGO_KEEP_8__ __CAPGO_KEEP_9__ __CAPGO_KEEP_10__ __CAPGO_KEEP_11__ バージョン対象化ソリューション バージョン対象化ソリューションの製品ワークフロー向け