Skip to content

docs: add Capacitor 9 plugin upgrade guide - #590

Open
andredestro wants to merge 3 commits into
chore/RMET-5320-cap9-app-upgrade-guidefrom
chore/RMET-5321-cap9-plugin-upgrade-guide
Open

docs: add Capacitor 9 plugin upgrade guide#590
andredestro wants to merge 3 commits into
chore/RMET-5320-cap9-app-upgrade-guidefrom
chore/RMET-5321-cap9-plugin-upgrade-guide

Conversation

@andredestro

Copy link
Copy Markdown
Contributor

Description

Adds docs/main/updating/plugins/9-0.md, the "Updating plugins to 9.0" guide for Capacitor plugin authors, and registers it in the Upgrade Guides sidebar. Also cross-links it with the app upgrade guide (main/updating/9-0.md) added in the base branch.

Covers plugin-author changes:

  • Using the @capacitor/plugin-migration-v8-to-v9 CLI tool, and updating package.json dependencies manually (next in devDependencies, >=9.0.0-alpha.1 in peerDependencies)
  • Cordova support becoming optional, including the plugin-specific implication of dropping the unconditional Cordova product from Package.swift
  • Updating the plugin's Android Gradle variables (AndroidX, Google Maps, kotlinx-coroutines versions), removing targetSdkVersion, migrating core-ktx to core
  • Removing the standalone Kotlin Gradle plugin (AGP 9 bundles Kotlin 2.2.10 natively) and jcenter()
  • Giving the plugin a unique Android namespace (AGP 9 defaults android.uniquePackageNames to true)
  • Raising the iOS deployment target to 16.0 across podspec, Podfile, and Package.swift, and bumping the capacitor-swift-pm dependency

Change Type

  • Fix
  • Feature
  • Refactor
  • Breaking Change
  • Documentation
  • Other (CI, chores, etc.)

Rationale / Problems Fixed

Plugin authors upgrading to Capacitor 9 need a single reference for what changed in their build/dependency setup, separate from the app-level guide, so the Capacitor CLI and other components can link to it.

Internal Jira reference: https://outsystemsrd.atlassian.net/browse/RMET-5321

Screenshots / Media

N/A

Platforms Affected

  • Android
  • iOS
  • Web

@vercel

vercel Bot commented Aug 12, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
capacitor-docs Ready Ready Preview Aug 14, 2026 2:57pm

Request Review


## Using @capacitor/plugin-migration-v8-to-v9

From the plugin folder, run `npx @capacitor/plugin-migration-v8-to-v9@latest` and it will perform most of the file changes automatically.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doesn't exist yet, and maybe would only exist when Capacitor 9 reaches GA? Or we could generate a prerelease for it (no prerelease exists yet)? Or, because the plugin-migration packages are in 0.x, perhaps it's fine to do a stable release?

Should we decide that (whether or not to release the plugin migrator for Cap 9 unstable version) before merging this PR (decision can potentially be done outside this PR)?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed this can be decided outside this PR. Leaning towards a 0.x prerelease/prerelease-tag publish once we're closer to stabilizing the Cap 9 changes, rather than a stable release while Cap 9 itself is still alpha, but let's track that decision separately rather than block this guide on it.

Comment thread docs/main/updating/plugins/9-0.md Outdated
Comment thread docs/main/updating/plugins/9-0.md Outdated
Comment thread docs/main/updating/plugins/9-0.md
Comment thread docs/main/updating/plugins/9-0.md
Comment thread docs/main/updating/plugins/9-0.md Outdated
Covers plugin-author changes (Cordova-optional implications for
plugins, Android/iOS breaking changes, gradle plugin variable bumps,
using the plugin-migration-v8-to-v9 tool). Cross-links with the app
upgrade guide added in the previous commit.

RMET-5321
- Pin capacitor-swift-pm and the peerDependencies example to the
  latest alpha (9.0.0-alpha.6); earlier alphas had Cordova Optionality
  crashes. Use "prerelease" instead of "alpha" in the general wording
  so it doesn't go stale once Capacitor 9 reaches beta.
- Clarify the uniquePackageNames namespace collision wording
- Add a "Rename the default ProGuard file" section, since community
  plugins/forks may still reference proguard-android.txt
- Point to the 8.5 UIScene audit section from the iOS deployment
  target step

Addresses review comments from @OS-pedrogustavobilro on PR #590.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants