---
description: Learn how to upgrade your Capacitor plugin to Capacitor 8 using the CLI migration tool, AI-powered Capawesome Skills, or a manual approach.
title: How to Upgrade Your Capacitor Plugin to Capacitor 8 - Capawesome
image: https://capawesome.io/docs/assets/images/social/blog/how-to-upgrade-your-capacitor-plugin-to-capacitor-8.png
---

[ Skip to content](#how-to-upgrade-your-capacitor-plugin-to-capacitor-8) 

[ 🔐 Introducing the **Capacitor Vault** plugin — store secrets behind biometrics or a device passcode.](/blog/announcing-the-capacitor-vault-plugin/) 

* [  SDKs ](/docs/sdks/)
* [  Formbricks ](/docs/sdks/capacitor/formbricks/)
* [  Geocoder ](/docs/sdks/capacitor/geocoder/)
* [  Google Sign-In ](/docs/sdks/capacitor/google-sign-in/)
* [  Grafana Faro ](/docs/sdks/capacitor/grafana-faro/)
* [  libSQL ](/docs/sdks/capacitor/libsql/)
* [  Live Update ](/docs/sdks/capacitor/live-update/)
* [  Managed Configurations ](/docs/sdks/capacitor/managed-configurations/)
* [  Media Session ](/docs/sdks/capacitor/media-session/)
* [  ML Kit ](/docs/sdks/capacitor/mlkit/)
* [  Navigation Bar ](/docs/sdks/capacitor/navigation-bar/)
* [  NFC ](/docs/sdks/capacitor/nfc/)
* [  OAuth ](/docs/sdks/capacitor/oauth/)
* [  Pedometer ](/docs/sdks/capacitor/pedometer/)
* [  Photo Editor ](/docs/sdks/capacitor/photo-editor/)
* [  PostHog ](/docs/sdks/capacitor/posthog/)
* [  Printer ](/docs/sdks/capacitor/printer/)
* [  Purchases ](/docs/sdks/capacitor/purchases/)
* [  RealtimeKit ](/docs/sdks/capacitor/realtimekit/)
* [  Screen Orientation ](/docs/sdks/capacitor/screen-orientation/)
* [  Screenshot ](/docs/sdks/capacitor/screenshot/)
* [  Secure Preferences ](/docs/sdks/capacitor/secure-preferences/)
* [  Speech Recognition ](/docs/sdks/capacitor/speech-recognition/)
* [  Speech Synthesis ](/docs/sdks/capacitor/speech-synthesis/)
* [  Share Target ](/docs/sdks/capacitor/share-target/)
* [  Square Mobile Payments ](/docs/sdks/capacitor/square-mobile-payments/)
* [  SQLite ](/docs/sdks/capacitor/sqlite/)
* [  Superwall ](/docs/sdks/capacitor/superwall/)
* [  Torch ](/docs/sdks/capacitor/torch/)
* [  Vault ](/docs/sdks/capacitor/vault/)
* [  Wifi ](/docs/sdks/capacitor/wifi/)
* [  Zip ](/docs/sdks/capacitor/zip/)
* [  Cordova ](/docs/sdks/cordova/)
* [  Cloud ](/docs/cloud/)
* [  Integrations ](/docs/cloud/live-updates/integrations/)
* Concepts
* Reference
* [  Troubleshooting ](/docs/cloud/live-updates/troubleshooting/)
* [  FAQ ](/docs/cloud/live-updates/faq/)
* [  Native Builds ](/docs/cloud/native-builds/)
* [  Set Up Environments ](/docs/cloud/native-builds/environments/)
* [  Overwrite Native Configurations ](/docs/cloud/native-builds/native-configurations/)
* [  Auto-Increment Build Numbers ](/docs/cloud/native-builds/auto-incrementing-build-numbers/)
* [  Configure the Web Build Script ](/docs/cloud/native-builds/web-build-script/)
* [  Build from a Monorepo ](/docs/cloud/native-builds/monorepo/)
* [  Use pnpm or Yarn ](/docs/cloud/native-builds/package-managers/)
* [  Install Private npm Packages ](/docs/cloud/native-builds/npm-private-registry/)
* [  Override the Java Version ](/docs/cloud/native-builds/override-java-version/)
* [  Custom iOS Provisioning Profiles ](/docs/cloud/native-builds/custom-ios-provisioning-profiles/)
* [  Build without Git ](/docs/cloud/native-builds/build-without-git/)
* [  Access Git Behind a Firewall ](/docs/cloud/native-builds/firewall-access/)
* [  Integrations ](/docs/cloud/native-builds/integrations/)
* Reference
* [  Troubleshooting ](/docs/cloud/native-builds/troubleshooting/)
* [  FAQ ](/docs/cloud/native-builds/faq/)
* [  App Store Publishing ](/docs/cloud/app-store-publishing/)
* [  Submit a Build ](/docs/cloud/app-store-publishing/submit-a-build/)
* [  Submit Automatically After a Build ](/docs/cloud/app-store-publishing/submit-automatically/)
* [  Troubleshooting ](/docs/cloud/app-store-publishing/troubleshooting/)
* [  FAQ ](/docs/cloud/app-store-publishing/faq/)
* [  Automations ](/docs/cloud/automations/)
* [  Reference ](/docs/cloud/automations/reference/)
* [  Troubleshooting ](/docs/cloud/automations/troubleshooting/)
* [  FAQ ](/docs/cloud/automations/faq/)
* [  Assist ](/docs/cloud/assist/)
* [  CLI ](/docs/cloud/cli/)
* APIs and SDKs
* [  Webhooks ](/docs/cloud/webhooks/)
* [  Integrations ](/docs/cloud/integrations/)
* Account
* [  Organization ](/docs/cloud/organizations/)
* [  Two-Factor Enforcement ](/docs/cloud/organizations/two-factor-authentication/)
* [  Audit Logs ](/docs/cloud/organizations/audit-logs/)
* [  Billing ](/docs/cloud/organizations/billing/)
* [  License Keys ](/docs/cloud/license-keys/)
* [  AI ](/docs/ai/)
* [  Insiders ](/docs/insiders/)
* [  Billing & Plans ](/docs/insiders/billing-and-plans/)
* [  FAQ ](/docs/insiders/faq/)
* [  License ](https://capawesome.io/legal/eula/)
* [  Support ](/docs/support/)
* [  Contributing ](/docs/contributing/)
* Contributing code
* [  Code of Conduct ](/docs/contributing/code-of-conduct/)
* [  Questions ](https://docs.github.com/en/discussions/collaborating-with-your-community-using-discussions/participating-in-a-discussion#creating-a-discussion)
* [  Blog ](/blog/)
* Categories

* [  Upgrade Options ](#upgrade-options)
* [  Which Approach Should You Choose? ](#which-approach-should-you-choose)
* [  Try Capawesome Cloud ](#try-capawesome-cloud)
* [  Conclusion ](#conclusion)

# How to Upgrade Your Capacitor Plugin to Capacitor 8[¶](#how-to-upgrade-your-capacitor-plugin-to-capacitor-8 "Permanent link")

Capacitor 8 makes Swift Package Manager the default on iOS, bumps the Android target to SDK 36, and upgrades to Kotlin 2.2\. This guide covers three ways to bring your Capacitor plugin up to date — an automated CLI tool, AI-powered Capawesome Skills, or a fully manual upgrade.

[ ![Build and deploy your Capacitor app with Capawesome Cloud](../../assets/external/cloud.capawesome.io/assets/banners/cloud-build-and-deploy-capacitor-apps.69628c3f.png) ](/) 

## Why Upgrade to Capacitor 8[¶](#why-upgrade-to-capacitor-8 "Permanent link")

Before jumping into the migration steps, here's why the upgrade matters for plugin authors:

* **Swift Package Manager by default**: New iOS projects use SPM instead of CocoaPods. CocoaPods [entered maintenance mode](https://blog.cocoapods.org/CocoaPods-Specs-Repo-Rate-Limiting/) in August 2024 and its Specs repository will become read-only in December 2026\. Updating your plugin's `Package.swift` ensures compatibility with SPM-based projects.
* **Android SDK 36**: Targeting the latest Android platform keeps your plugin compatible with apps that follow Google's target API requirements.
* **Kotlin 2.2**: The jump from Kotlin 1.9 to 2.2 is a major upgrade that brings performance improvements and language features, but also includes breaking changes like the removal of the `kotlin-android-extensions` plugin.
* **Edge-to-edge support**: Capacitor 8 introduces a new System Bars plugin for managing status and navigation bar insets, replacing the removed `adjustMarginsForEdgeToEdge` config option.
* **Updated platform tooling**: Xcode 26+ and Android Studio Otter (2025.2.1+) are now required.

## What Changes at a Glance[¶](#what-changes-at-a-glance "Permanent link")

Here's a summary of the most impactful changes for plugin authors. For the full list, see the [official plugin upgrade guide](https://capacitorjs.com/docs/updating/plugins/8-0).

### Dependencies[¶](#dependencies "Permanent link")

* Update `@capacitor/core` peer dependency to `>=8.0.0`.
* Update `@capacitor/cli`, `@capacitor/core`, `@capacitor/android`, and `@capacitor/ios` dev dependencies to `^8.0.0`.

### Android[¶](#android "Permanent link")

* Compile and target SDK updated to **36**, minimum SDK raised to **24**.
* Gradle wrapper updated to **8.14.3**, Android Gradle Plugin (AGP) to **8.13.0**.
* Kotlin updated to **2.2.20**.
* **Gradle syntax change**: The space-assignment syntax is deprecated. Properties like `compileSdk 36` must be written as `compileSdk = 36`.
* Replace the deprecated `kotlinOptions{}` block with the new `compilerOptions{}` API.
* Various AndroidX dependency version bumps (AppCompat, JUnit, Espresso, and others).

### iOS[¶](#ios "Permanent link")

* Deployment target raised to **15.0** in `.podspec` files and `Podfile`.
* Update `Package.swift` to specify `.iOS(.v15)` and change the Capacitor SPM dependency from version 7.0.0 to 8.0.0.

## Upgrade Options[¶](#upgrade-options "Permanent link")

There are three ways to upgrade — pick the one that best fits your project and workflow.

### Option 1: Upgrade Using the Capacitor CLI[¶](#option-1-upgrade-using-the-capacitor-cli "Permanent link")

The fastest way to upgrade your plugin is the official migration tool. Run the following command from your plugin's root directory:

`[](#%5F%5Fcodelineno-0-1)npx @capacitor/plugin-migration-v7-to-v8@latest
`

The tool automatically updates your `package.json` dependencies, adjusts `build.gradle` values, updates the Gradle wrapper, bumps the iOS deployment target, and applies the Kotlin version change.

This works well for most plugins with a standard project structure. If your plugin has significant native customizations — custom Gradle configurations, non-standard directory layouts, or complex build scripts — you may need to handle some steps manually after the migration. Check the tool's output for any warnings or skipped steps.

### Option 2: Upgrade Using Capawesome Skills[¶](#option-2-upgrade-using-capawesome-skills "Permanent link")

[Capawesome Skills](https://github.com/capawesome-team/skills) are agent-optimized instruction sets designed for AI coding assistants like Claude Code, Cursor, or GitHub Copilot. They provide step-by-step upgrade instructions that handle both the automated migration and manual fallback steps.

First, add the skills to your project:

`[](#%5F%5Fcodelineno-1-1)npx skills add capawesome-team/skills
`

Then, use the following prompt with your AI coding assistant:

`` [](#%5F%5Fcodelineno-2-1)Use the `capacitor-plugin-upgrades` skill from `capawesome-team/skills`
[](#%5F%5Fcodelineno-2-2)to help me upgrade my Capacitor plugin to Capacitor 8.
 ``

The skill will attempt the CLI migration first and fall back to manual steps where needed. It also covers edge cases like adding SPM support, updating Kotlin compiler options, and handling the Gradle syntax changes — making it a good option if the CLI tool doesn't catch everything.

### Option 3: Upgrade Manually[¶](#option-3-upgrade-manually "Permanent link")

If you prefer full control, follow the [official Capacitor 8 plugin upgrade guide](https://capacitorjs.com/docs/updating/plugins/8-0) step by step. Here's a condensed overview:

1. Update `@capacitor/core` peer dependency to `>=8.0.0` and dev dependencies to `^8.0.0`.
2. **Android**: Update `compileSdk`, `targetSdkVersion`, and `minSdkVersion` in `build.gradle`:

`[](#%5F%5Fcodelineno-3-1)compileSdk = 36
[](#%5F%5Fcodelineno-3-2)minSdkVersion = 24
[](#%5F%5Fcodelineno-3-3)targetSdkVersion = 36
`

1. **Android**: Update Kotlin to `2.2.20` and replace `kotlinOptions{}` with `compilerOptions{}`.
2. **Android**: Update the Gradle wrapper to `8.14.3` and AGP to `8.13.0`.
3. **Android**: Switch to the `=` assignment syntax in all Gradle files.
4. **Android**: Update AndroidX dependency versions (only the ones your plugin uses).
5. **iOS**: Raise the deployment target to `15.0` in your `.podspec` file.
6. **iOS**: Update `Package.swift` to target `.iOS(.v15)` and set the Capacitor SPM dependency to `8.0.0`.

This approach takes more effort but gives you complete visibility into every change.

## Which Approach Should You Choose?[¶](#which-approach-should-you-choose "Permanent link")

| Approach              | Best for                                          | Trade-off                                                |
| --------------------- | ------------------------------------------------- | -------------------------------------------------------- |
| **Capacitor CLI**     | Most plugins with standard project structures     | Fast, but may miss steps in heavily customized plugins   |
| **Capawesome Skills** | Plugins with custom native code or complex setups | Handles edge cases well, requires an AI coding assistant |
| **Manual**            | Plugin authors who want full control              | Most effort, but complete visibility                     |

For most plugins, the **Capacitor CLI** migration tool is the right starting point. If you run into issues or have a complex plugin with custom build configurations, **Capawesome Skills** can fill in the gaps. The **manual** approach is always available when you need full control.

## Try Capawesome Cloud[¶](#try-capawesome-cloud "Permanent link")

Building and deploying Capacitor apps is easier with [Capawesome Cloud](/). Get cloud-based native builds, over-the-air live updates, and automated app store publishing — all in one platform.

[Try Capawesome Cloud Free](/)

## Conclusion[¶](#conclusion "Permanent link")

Capacitor 8 brings meaningful updates for plugin authors — SPM as the iOS default, Android SDK 36, Kotlin 2.2, and modernized Gradle syntax. The CLI migration tool handles most of the work, Capawesome Skills can assist with more complex plugins, and the manual route gives you full control when you need it.

If you're also upgrading a Capacitor app project, check out [How to Upgrade Your Capacitor App to Capacitor 8](/blog/how-to-upgrade-your-capacitor-app-to-capacitor-8/) for a full walkthrough of the app-level migration.

If you have questions, join the [Capawesome Discord server](https://discord.gg/VCXxSVjefW). To stay up to date with the latest news, subscribe to the [Capawesome newsletter](/newsletter/).

May 7, 2026 

 Back to top 