mcpField
C
capacitor-plugin-upgrade-v6-to-v7

capacitor-plugin-upgrade-v6-to-v7

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

capacitor-plugin-upgrade-v6-to-v7 について

Capacitor 6 から 7 への移行ガイドです。プラグインの依存関係やネイティブビルド設定の更新、削除された API の置き換えを説明します。

主な機能

  1. 01プラグイン移行コマンドの実行
  2. 02Capacitor 依存関係の更新
  3. 03Android と iOS の設定調整
  4. 04削除された API の置き換え
  5. 05ビルド検証とサンプルアプリの実行

活用シーン

  1. 01Capacitor 6 のプラグインを 7 に対応
  2. 02PluginCall とプラットフォーム検出 API の置き換え
  3. 03ネイティブプロジェクトとツール設定の更新

インストール

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

$npx skills add https://github.com/cap-go/capgo-skills --skill capacitor-plugin-upgrade-v6-to-v7

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

metadata.json
references/
android.md
ios.md
tooling.md

詳細

Capacitor プラグインを v6 から v7 にアップグレードする

プラグインライブラリを Capacitor 7 に移行します。情報源:https://capacitorjs.com/docs/updating/plugins/7-0

使用する場合

  • スナップショットで @capacitor/core が 6.x となっており、プラグインを Capacitor 7 アプリで動作させる必要がある場合。
  • プラグインコードで call.success()、call.error()、registerWebPlugin、Capacitor.platform、Capacitor.isNative の呼び出しや、BridgeFragment の使用が残っている場合。
  • Package.swift で capacitor-swift-pm の参照先が branch: "main" になっている場合。

使用しない場合:

  • アプリのアップグレード → capacitor-app-upgrade-v6-to-v7。
  • プラグインが 5.x の場合は、先に capacitor-plugin-upgrade-v5-to-v6 を使用します。7.x の場合は capacitor-plugin-upgrade-v7-to-v8 を使用します。複数段階のアップグレードには capacitor-plugin-upgrades を使用します。
  • SPM を一から追加する場合 → capacitor-plugin-spm-support。

ライブプロジェクトのスナップショット

プラグインと 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' \)

参考資料

ファイル読み込むタイミング
references/android.mdGradle、Java、Kotlin の変更を手動で適用する場合
references/ios.mdpodspec/Package.swift/旧構造の Xcode プロジェクトで iOS ターゲットを引き上げる場合、capacitor-swift-pm を固定する場合
references/tooling.mdeslint、swiftlint、prettier、rollup、rimraf、docgen を更新する場合

事前確認

ツール最小バージョン
Node.js20+
Xcode16.0+
iOS デプロイメントターゲット14.0
Java21
AGP / Gradle8.7.2 / 8.11.1
Android SDK のデフォルト値minSdk 23、compileSdk 35、targetSdk 35

手順

  1. 6.x であることと、ワーキングツリーがクリーンであることを確認します。

  2. プラグインのルートから実行します:

    npx @capacitor/plugin-migration-v6-to-v7@latest
    

    git diff を確認します。

  3. package.json:開発用依存関係の @capacitor/cli、core、android、ios を ^7.0.0 にし、ピア依存関係の @capacitor/core を >=7.0.0 にします。ツール類は references/tooling.md に従います(rollup.config.js から rollup.config.mjs への名称変更と、スクリプトの --plugin=prettier-plugin-java フラグに注意してください)。

  4. Android:references/android.md に従い、SDK のデフォルト値を 23/35/35、AGP を 8.7.2、Gradle を 8.11.1、Java を 21、Kotlin を 1.9.25 にします。

  5. iOS:references/ios.md に従い、podspec の s.ios.deployment_target = '14.0'、Package.swift の .iOS(.v14) を設定し、capacitor-swift-pm を branch: "main" ではなく from: "7.0.0" にします。

  6. 削除された API - 検索して置き換えます:

    • call.success(...) → call.resolve(...)、call.error(...) → call.reject(...)(Java/Kotlin および Swift)。
    • registerWebPlugin やその他の v2 時代の定義は削除されています。registerPlugin を使用します(Capacitor 3 のプラグインアップグレードガイドを参照してください)。
    • Capacitor.platform → Capacitor.getPlatform()、Capacitor.isNative → Capacitor.isNativePlatform()。
    • Android の BridgeFragment は削除されています。プラグインがこれを介してフラグメントを表示している場合は、必要なロジックをプラグイン独自の Fragment クラスにコピーします。
  7. capacitor-app-upgrade-v6-to-v7 を使用してサンプルアプリをアップグレードし、プラグインのメジャーバージョンを上げ、「Capacitor 7 が必要」と記載します。

検証

grep -n "\"@capacitor/\|rollup\|prettier\"" package.json
grep -rnE "\.success\(|\.error\(" android/src/main ios/ 2>/dev/null | grep -i call     # expect none
grep -rnE "registerWebPlugin|Capacitor\.platform\b|Capacitor\.isNative\b|BridgeFragment" src/ android/ ios/   # expect none
grep -n "deployment_target" *.podspec                       # '14.0'
grep -n "iOS(\|capacitor-swift-pm" Package.swift 2>/dev/null    # .v14, from: "7.0.0"
grep -n "VERSION_21\|gradle:8.7.2\|: 35\|: 23" android/build.gradle
npm run build
npm run verify        # if the repo has the template verify scripts

両方のプラットフォームでサンプルアプリを実行します。

エラーへの対処

エラー対処方法
cannot find symbol ... success( / error( on PluginCallresolve/reject を使用します。
invalid source release: 21Gradle の JDK を 21 にします。
SPM:ターゲットの requires minimum platform version がプラグインの宣言より高いPackage.swift で platforms: [.iOS(.v14)] を設定し、capacitor-swift-pm を from: "7.0.0" に固定します。
Rollup 4 で rollup.config.js(ESM 設定ファイル)の読み込みに失敗するrollup.config.mjs に名前を変更し、build スクリプトを更新します。
Property 'platform' does not exist on type 'CapacitorGlobal'Capacitor.getPlatform() を使用します。

コメント