How do I move off Capacitor 7 Migration With Node 20, Xcode 16, and Android 15 Requirements without getting stuck?
Plan whether hybrid apps should move from Capacitor 6 to 7 now or isolate native shell upgrades first, given current platform toolchain requirements.
Blockers
- framework/capacitor-6 — EOL 2026-01-20
- framework/capacitor-7 — EOL 2026-06-08
- framework/capacitor-7 — EOL 2026-12-08
- requires_version: framework/capacitor-7 → runtime/nodejs-20
- requires_version: framework/capacitor-7 → package/xcode-16
- requires_version: framework/capacitor-7 → runtime/java-21
- requires_version: framework/capacitor-7 → runtime/android-15
- removed config option
- removed config option
Who this is for
Candidates
Upgrade to Capacitor 7 now and align the whole toolchain in one pass
As of 2026-03-28, Capacitor 6 is already end of support; Capacitor's support policy lists v6 extended support ending on 2026-01-20, while v7 remains in maintenance through 2026-06-08 and extended support through 2026-12-08. The Capacitor 7 migration guide requires Node.js 20 or greater, Xcode 16.0+, Android Studio Ladybug 2024.2.1+, Java 21, iOS deployment target 14.0, and Android compileSdkVersion and targetSdkVersion 35 with minSdkVersion 23. Apple has required Xcode 16 and the iOS 18 SDK for App Store submissions since 2025-04-24, and Google Play has required Android 15 target API 35 for new apps and app updates since 2025-08-31. This path removes the mismatch where app store policy already forces the native toolchain floor that Capacitor 7 expects.
When to choose
Use this when the app still ships regular updates and you need current App Store and Play compliance without carrying an unsupported Capacitor major. It is the cleanest choice when you can absorb one coordinated migration across Node, iOS, Android, and plugin updates.
Tradeoffs
Single migration wave reduces duplicated native churn and gets back onto a supported Capacitor line, but it concentrates risk because framework, build tools, SDK targets, and plugin changes all move together.
Cautions
The Capacitor 7 guide removes the bundledWebRuntime and cordova.staticPlugins config options, raises native minimums, and lists official plugin API removals or type renames. Apple also lists Capacitor among SDKs subject to privacy manifest requirements when included in submitted apps.
Stabilize native shells first, then move from Capacitor 6 to 7 immediately after
As of 2026-03-28, this is no longer a long-term hold position on Capacitor 6, because Capacitor marks v6 as end of support as of 2026-01-20. The only defensible version of this approach is a short sequencing tactic: first make the existing app build and submit with Xcode 16 and Android target API 35, then complete the Capacitor 7 migration once CI, signing, and store submission paths are stable. Android's migration guidance says compatibility testing on Android 15 can start without immediately targeting the new platform, but Google Play policy for app updates already requires target API 35, so the delay window is operational rather than strategic. This can reduce blast radius if native build pipelines are currently broken and framework migration would obscure the real blocker.
When to choose
Use this only when the immediate risk is build or release pipeline failure in iOS or Android tooling, and you need to separate store compliance work from framework-level code churn. It works best as a short-lived sequencing plan measured in days or a small number of releases, not as a steady-state decision.
Tradeoffs
It can make debugging clearer by isolating toolchain failures from Capacitor/plugin failures, but it duplicates effort because Capacitor 7 still requires the same modern Node, Xcode, Android Studio, Java, and SDK levels.
Cautions
Do not treat this as a way to avoid Capacitor 7. Apple and Google submission floors have already moved, while Capacitor 6 support has already ended as of 2026-03-28.
Try with your AI agent
$ npm install -g pocketlantern $ pocketlantern init # Restart Claude Code, Cursor, or your MCP client, then ask: # "How do I move off Capacitor 7 Migration With Node 20, Xcode 16, and Android 15 Requirements without getting stuck?"