mcpField
C
capacitor-plugin-upgrades

capacitor-plugin-upgrades

github.com/cap-go開発75743 回インストール2 週間前に更新
リポジトリ

capacitor-plugin-upgrades について

Capacitor プラグインのメンテナー向けに、バージョンアップを計画するスキルです。対応範囲を確認し、専用スキルを使ってメジャーバージョンごとに移行・検証します。

主な機能

  1. 01対応バージョン範囲の検出
  2. 02メジャーバージョン単位の計画
  3. 03対応する移行スキルの利用
  4. 04API とネイティブ設定の確認
  5. 05プラグインとサンプルアプリでの検証

活用シーン

  1. 01新しい Capacitor メジャーバージョンへの対応
  2. 02アプリより古い peerDependencies への対処
  3. 03新バージョンやシーンベースアプリでの互換性問題の調査

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/cap-go/capgo-skills --skill capacitor-plugin-upgrades

インストール後、Claude Code で/capacitor-plugin-upgradesを入力して読み込まれたか確認します。

同梱ファイルmetadata.json

詳細

Capacitor プラグインのアップグレード(ルーター)

バージョン固有のスキルを各段階で使用し、メジャーバージョンを一つずつ上げてプラグインをアップグレードする計画を立て、実行します。

使用する場合

以下の場合に使用します。

  • プラグインのメンテナーが新しい Capacitor メジャーバージョンへの対応を望んでいるが、必要な段階数が不明な場合
  • peerDependencies["@capacitor/core"] がアプリの Capacitor バージョンより遅れている場合
  • プラグインのユーザーから、Capacitor 8.5 のシーンベースアプリまたは Capacitor 9 で動作しないという報告があった場合

以下の場合は使用しないでください。

  • アプリプロジェクト -> capacitor-app-upgrades
  • プラグインに SPM を追加する場合 -> capacitor-plugin-spm-support
  • Cordova プラグインを Capacitor プラグインに変換する場合 -> cordova-to-capacitor

現在のプロジェクトのスナップショット

プラグインと Capacitor パッケージのスナップショット: !node -e "const fs=require('fs');if(!fs.existsSync('package.json'))process.exit(0);const pkg=JSON.parse(fs.readFileSync('package.json','utf8'));const out=['package.name='+(pkg.name||''),'package.version='+(pkg.version||'')];for(const section of ['peerDependencies','dependencies','devDependencies']){for(const [name,version] of Object.entries(pkg[section]||{})){if(name.startsWith('@capacitor/'))out.push(section+'.'+name+'='+version)}}console.log(out.join('\n'))"

サンプルアプリとネイティブプロジェクトのパス: !find . -maxdepth 3 \( -path './example-app' -o -path './ios' -o -path './android' -o -name 'capacitor.config.json' -o -name 'capacitor.config.ts' -o -name 'capacitor.config.js' \)

バージョン対応表(2026年10月)

段階スキル備考
4 -> 5capacitor-plugin-upgrade-v4-to-v5
5 -> 6capacitor-plugin-upgrade-v5-to-v6
6 -> 7capacitor-plugin-upgrade-v6-to-v7
7 -> 8capacitor-plugin-upgrade-v7-to-v8iOS 15、SDK 36、AGP 8.13
8.5 ライフサイクルcapacitor-uiscene-migration(references/plugin-audit.md)監査のみ。プラグインが1リリースのルールに従っていれば、バージョンを上げる必要はありません
8 -> 9capacitor-plugin-upgrade-v8-to-v9npx @capacitor/plugin-migration-v8-to-v9@latest、iOS 16、SDK 37、AGP 9.2.1、API の削除

Capacitor 9 はプレリリースです(next タグ、9.0.0-alpha.x)。GA までは next / >=9.0.0-alpha.6 の範囲を使用してください。プラグインの v9 リリースも npm の next タグで公開することを検討してください。現在安定版のメジャーバージョンへの対応を終了する前に、ユーザーに確認してください。

手順

  1. 検出: 対応範囲を確認します(ピア依存関係、Package.swift の capacitor-swift-pm 要件、podspec の Capacitor 依存関係、android/build.gradle のデフォルト値)。対象のメジャーバージョンをユーザーに確認します。
  2. 段階を計画: メジャーバージョンを一つずつ上げます。8 -> 9 に移行する場合は、その段階で UIScene プラグイン監査を実行します。例:7 -> 9 の場合、7->8、UIScene 監査、8->9 の順に進めます。
  3. 各段階で: Git ツリーがクリーンであることを確認し、その段階のスキルを読み込み、公式マイグレーターが指定されている場合は最初に実行します(npx @capacitor/plugin-migration-v<from>-to-v<to>@latest)。差分を確認し、手動チェックリストを完了してから、次の段階に進む前に検証します(手順 5)。
  4. 各段階で再確認する範囲: TypeScript の定義とエクスポート名、ネイティブメソッドのシグネチャとペイロード、Android の名前空間と Java/Kotlin ツールチェーン、podspec と Package.swift の iOS デプロイメントターゲット(両方を維持)、README のインストール手順と互換性表。
  5. 検証: プラグインのルートとサンプルアプリの両方で検証します。

検証

npm run verify が存在する場合は実行します。存在しない場合:

npm run build
npm test --if-present
cd android && ./gradlew clean build && cd ..
xcodebuild -scheme <PluginScheme> -destination 'generic/platform=iOS Simulator' build   # find it with xcodebuild -list
cd example-app && npm install && npx cap sync && npx cap run ios && npx cap run android

npx cap sync とネイティブ実行は、プラグインのルートではなく、サンプルアプリまたはテストアプリから実行します。リリース対象の各プラットフォームで、すべての公開メソッドを試します。

エラー処理

  • その段階のマイグレーターが失敗する、またはファイルを処理し損ねる場合 -> 次のメジャーバージョンに進む前に、その段階のスキルに従って手動で完了します。
  • サンプルアプリが動作しなくなった場合 -> 公開前にプラグイン API またはネイティブの接続を修正します。
  • CocoaPods と SPM の両方を使用する利用者から問題が報告された場合 -> podspec と Package.swift で同じプラットフォームと Capacitor の範囲が宣言されていることを確認します。
  • シーンベースアプリでのみプラグインが動作しない場合 -> AppDelegate メソッドまたは tmpWindow の前提を確認します。capacitor-uiscene-migration を参照してください。

コメント