---
title: Updating to Capacitor 8.0
description: Capacitor 8.0 is here! Find out what breaking changes have been made to the Capawesome plugins and how to update your code.
date:
  created: 2025-12-17
authors:
  - robingenz
categories:
  - Capacitor
  - SDKs
---

# Updating to Capacitor 8.0

Capacitor 8.0 is finally here and brings a lot of improvements!
Make sure to check out the [official announcement post](https://ionic.io/blog/announcing-capacitor-8){:target="_blank"} from the Ionic team.
In this article, you can find out what breaking changes have been made to the Capawesome plugins.
For a complete upgrade guide covering all migration approaches, see [How to Upgrade Your Capacitor App to Capacitor 8](./how-to-upgrade-your-capacitor-app-to-capacitor-8.md) or [How to Upgrade Your Capacitor Plugin to Capacitor 8](./how-to-upgrade-your-capacitor-plugin-to-capacitor-8.md). Jumping straight from Capacitor 6? Check [Updating to Capacitor 7.0](./updating-to-capacitor-7.md) first for the breaking changes you'd otherwise skip over.

<!-- more -->

<div class="capawesome-z29o10a">
  <a href="/" target="_blank">
    <img alt="Build and deploy your Capacitor app with Capawesome Cloud" src="https://capawesome.io/assets/banners/cloud-build-and-deploy-capacitor-apps.png?t=1" />
  </a>
</div>

!!! tip "AI-Assisted Upgrade"

    For a more guided experience, add the [Capawesome skills](https://github.com/capawesome-team/skills){:target="_blank"} to your project with `npx skills add capawesome-team/skills --skill capacitor-app-upgrades` and use the following prompt with your preferred AI coding assistant:

    ```
    Use the `capacitor-app-upgrades` skill from `capawesome-team/skills` to help me upgrade my Capacitor app to Capacitor 8.
    ```

## Plugins

The following plugin functionality has been modified or removed. Update your code accordingly.
More information can be found in the respective `BREAKING.md` file of each plugin.

### Accelerometer

[README](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/accelerometer/README.md){:target="_blank"} | [BREAKING](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/accelerometer/BREAKING.md){:target="_blank"}

- The plugin now automatically requests permissions when calling plugin methods instead of throwing an error. Use the `checkPermissions()` method beforehand if you need to check permissions first.

### Age Signals

[README](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/age-signals/README.md){:target="_blank"} | [BREAKING](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/age-signals/BREAKING.md){:target="_blank"}

- On Android, the `androidPlayAgeSignalsVersion` variable has been updated to `0.0.2`.

### Android Edge to Edge Support

[README](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/android-edge-to-edge-support/README.md){:target="_blank"} | [BREAKING](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/android-edge-to-edge-support/BREAKING.md){:target="_blank"}

- The default background color has been changed from white to transparent. To keep the white background, explicitly set `backgroundColor` to `#ffffff` in the plugin configuration.

### App Update

[README](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/app-update/README.md){:target="_blank"} | [BREAKING](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/app-update/BREAKING.md){:target="_blank"}

- On Android, the `androidPlayServicesBaseVersion` variable has been updated to `18.9.0`.

### Audio Recorder

[README](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/audio-recorder/README.md){:target="_blank"} | [BREAKING](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/audio-recorder/BREAKING.md){:target="_blank"}

- On Android, the `pauseRecording` and `resumeRecording` methods now return `UNAVAILABLE` instead of `UNIMPLEMENTED` when called on devices with API level below 24.
- The default value of `audioSessionMode` has been changed from `AudioSessionMode.Measurement` to `AudioSessionMode.Default`. If you were relying on the previous behavior, you must now explicitly set the `audioSessionMode` option.

### Badge

[README](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/badge/README.md){:target="_blank"} | [BREAKING](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/badge/BREAKING.md){:target="_blank"}

- On iOS 16+, the plugin now uses `UNUserNotificationCenter` instead of the deprecated `applicationIconBadgeNumber` API, which may affect error handling behavior.

### Bluetooth Low Energy

[README](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/bluetooth-low-energy/README.md){:target="_blank"} | [BREAKING](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/bluetooth-low-energy/BREAKING.md){:target="_blank"}

- On Web, all methods now return `UNIMPLEMENTED` instead of `UNAVAILABLE`.
- On Android, the error message for `startForegroundService` has been improved when missing required permissions. The original system error is now logged via the Capacitor Logger.

### Cloudinary

[README](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/cloudinary/README.md){:target="_blank"} | [BREAKING](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/cloudinary/BREAKING.md){:target="_blank"}

- On Android, the `cloudinaryAndroidVersion` variable has been updated to `3.1.2`.

### Contacts

[README](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/contacts/README.md){:target="_blank"} | [BREAKING](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/contacts/BREAKING.md){:target="_blank"}

- The `limit` property in `GetContactsOptions` now defaults to `20`.
- The `updateContactById` method now supports partial updates. Missing properties are preserved, and properties set to `null` or `[]` are deleted. If you were relying on missing properties being deleted, you must now explicitly set them to `null`.

### File Compressor

[README](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/file-compressor/README.md){:target="_blank"} | [BREAKING](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/file-compressor/BREAKING.md){:target="_blank"}

- On Android, the `androidxDocumentFileVersion` variable has been updated to `1.1.0`.
- On Android, the `path` property in `CompressImageResult` is now a URI string instead of an absolute file path (e.g., `file:///data/...` instead of `/data/...`).

### File Opener

[README](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/file-opener/README.md){:target="_blank"} | [BREAKING](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/file-opener/BREAKING.md){:target="_blank"}

- On Android, the `androidxDocumentFileVersion` variable has been updated to `1.1.0`.

### Firebase Analytics

[README](https://github.com/capawesome-team/capacitor-firebase/blob/main/packages/analytics/README.md){:target="_blank"} | [BREAKING](https://github.com/capawesome-team/capacitor-firebase/blob/main/packages/analytics/BREAKING.md){:target="_blank"}

- The Firebase Javascript SDK has been updated to `12.6.0`.
- On iOS, the Firebase iOS SDK has been updated to `12.7.0`. Deprecated pods have been removed: `GoogleAppMeasurementOnDeviceConversion`, `FirebaseAnalyticsOnDeviceConversion`, and `WithoutAdIdSupport`.
- On Android, the `firebaseAnalyticsVersion` variable has been updated to `23.0.0`.

### Firebase App

[README](https://github.com/capawesome-team/capacitor-firebase/blob/main/packages/app/README.md){:target="_blank"} | [BREAKING](https://github.com/capawesome-team/capacitor-firebase/blob/main/packages/app/BREAKING.md){:target="_blank"}

- The Firebase Javascript SDK has been updated to `12.6.0`.
- On Android, the `firebaseCommonVersion` variable has been updated to `22.0.1`.

### Firebase App Check

[README](https://github.com/capawesome-team/capacitor-firebase/blob/main/packages/app-check/README.md){:target="_blank"} | [BREAKING](https://github.com/capawesome-team/capacitor-firebase/blob/main/packages/app-check/BREAKING.md){:target="_blank"}

- The Firebase Javascript SDK has been updated to `12.6.0`.
- On Android, the `firebaseAppCheckPlayIntegrityVersion` variable has been updated to `19.0.1`.
- On Android, the `firebaseAppCheckDebugVersion` variable has been updated to `19.0.1`.

### Firebase Authentication

[README](https://github.com/capawesome-team/capacitor-firebase/blob/main/packages/authentication/README.md){:target="_blank"} | [BREAKING](https://github.com/capawesome-team/capacitor-firebase/blob/main/packages/authentication/BREAKING.md){:target="_blank"}

- The Firebase Javascript SDK has been updated to `12.6.0`.
- The `dynamicLinkDomain` property in `ActionCodeSettings` has been replaced with `linkDomain`.
- Error codes have been updated to return `UNIMPLEMENTED` instead of generic errors for platform-specific methods:
  - On Web: `getPendingAuthResult()`, `linkWithGameCenter(...)`, `linkWithPlayGames(...)`, `signInWithPlayGames()`, `signInWithGameCenter()`, `requestAppTrackingTransparencyPermission()`, `checkAppTrackingTransparencyPermission()`
  - On Android: `getRedirectResult()`, `setPersistence(...)`, `signInWithGameCenter()`, `requestAppTrackingTransparencyPermission()`, `checkAppTrackingTransparencyPermission()`
  - On iOS: `getPendingAuthResult()`, `getRedirectResult()`, `linkWithPlayGames(...)`, `setPersistence(...)`, `signInWithPlayGames()`

### Firebase Crashlytics

[README](https://github.com/capawesome-team/capacitor-firebase/blob/main/packages/crashlytics/README.md){:target="_blank"} | [BREAKING](https://github.com/capawesome-team/capacitor-firebase/blob/main/packages/crashlytics/BREAKING.md){:target="_blank"}

- On Android, the `firebaseCrashlyticsVersion` variable has been updated to `20.0.3`.

### Firebase Firestore

[README](https://github.com/capawesome-team/capacitor-firebase/blob/main/packages/firestore/README.md){:target="_blank"} | [BREAKING](https://github.com/capawesome-team/capacitor-firebase/blob/main/packages/firestore/BREAKING.md){:target="_blank"}

- The Firebase Javascript SDK has been updated to `12.6.0`.
- On Android, the `firebaseFirestoreVersion` variable has been updated to `26.0.2`.

### Firebase Functions

[README](https://github.com/capawesome-team/capacitor-firebase/blob/main/packages/functions/README.md){:target="_blank"} | [BREAKING](https://github.com/capawesome-team/capacitor-firebase/blob/main/packages/functions/BREAKING.md){:target="_blank"}

- The Firebase Javascript SDK has been updated to `12.6.0`.
- On Android, the `firebaseFunctionsVersion` variable has been updated to `22.1.0`.

### Firebase Messaging

[README](https://github.com/capawesome-team/capacitor-firebase/blob/main/packages/messaging/README.md){:target="_blank"} | [BREAKING](https://github.com/capawesome-team/capacitor-firebase/blob/main/packages/messaging/BREAKING.md){:target="_blank"}

- The Firebase Javascript SDK has been updated to `12.6.0`.
- On Android, the `firebaseMessagingVersion` variable has been updated to `25.0.1`.
- On Web, mobile-specific methods now return `UNIMPLEMENTED` instead of `UNAVAILABLE`: `getDeliveredNotifications()`, `removeDeliveredNotifications(...)`, `removeAllDeliveredNotifications()`, `subscribeToTopic(...)`, `unsubscribeFromTopic(...)`, `createChannel(...)`, `deleteChannel(...)`, `listChannels()`

### Firebase Performance

[README](https://github.com/capawesome-team/capacitor-firebase/blob/main/packages/performance/README.md){:target="_blank"} | [BREAKING](https://github.com/capawesome-team/capacitor-firebase/blob/main/packages/performance/BREAKING.md){:target="_blank"}

- The Firebase Javascript SDK has been updated to `12.6.0`.
- On Android, the `firebasePerfVersion` variable has been updated to `22.0.4`.

### Firebase Remote Config

[README](https://github.com/capawesome-team/capacitor-firebase/blob/main/packages/remote-config/README.md){:target="_blank"} | [BREAKING](https://github.com/capawesome-team/capacitor-firebase/blob/main/packages/remote-config/BREAKING.md){:target="_blank"}

- The Firebase Javascript SDK has been updated to `12.6.0`.
- On Android, the `firebaseConfigVersion` variable has been updated to `23.0.1`.

### Firebase Storage

[README](https://github.com/capawesome-team/capacitor-firebase/blob/main/packages/storage/README.md){:target="_blank"} | [BREAKING](https://github.com/capawesome-team/capacitor-firebase/blob/main/packages/storage/BREAKING.md){:target="_blank"}

- The Firebase Javascript SDK has been updated to `12.6.0`.
- On Android, the `firebaseStorageVersion` variable has been updated to `22.0.1`.

### LibSQL

[README](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/libsql/README.md){:target="_blank"} | [BREAKING](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/libsql/BREAKING.md){:target="_blank"}

- On Android, the `libsqlVersion` variable has been updated to `0.1.2`.
- On Android, the `sync` method now returns "Not implemented on this platform." instead of "Not available on this platform."

### Live Update

[README](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/live-update/README.md){:target="_blank"} | [BREAKING](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/live-update/BREAKING.md){:target="_blank"}

- On Android, the `okhttp3Version` variable has been updated to `5.3.2`.

### Media Session

[README](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/media-session/README.md){:target="_blank"} | [BREAKING](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/media-session/BREAKING.md){:target="_blank"}

- On iOS, the `setCameraActive` and `setMicrophoneActive` methods now return `UNIMPLEMENTED` instead of `UNAVAILABLE`.

### ML Kit Barcode Scanning

[README](https://github.com/capawesome-team/capacitor-mlkit/blob/main/packages/barcode-scanning/README.md){:target="_blank"} | [BREAKING](https://github.com/capawesome-team/capacitor-mlkit/blob/main/packages/barcode-scanning/BREAKING.md){:target="_blank"}

- On Web, unimplemented methods now throw `Unimplemented` instead of `Unavailable`.
- On iOS, the `isGoogleBarcodeScannerModuleAvailable` and `installGoogleBarcodeScannerModule` methods now throw `Unimplemented` instead of a generic error.
- On Android, the `androidxCameraCamera2Version` variable has been updated to `1.5.2`.
- On Android, the `androidxCameraCoreVersion` variable has been updated to `1.5.2`.
- On Android, the `androidxCameraLifecycleVersion` variable has been updated to `1.5.2`.
- On Android, the `androidxCameraViewVersion` variable has been updated to `1.5.2`.
- The `rawValue` property in the `Barcode` interface is now optional and only available if the barcode is UTF-8 encoded.

### ML Kit Document Scanner

[README](https://github.com/capawesome-team/capacitor-mlkit/blob/main/packages/document-scanner/README.md){:target="_blank"} | [BREAKING](https://github.com/capawesome-team/capacitor-mlkit/blob/main/packages/document-scanner/BREAKING.md){:target="_blank"}

- On iOS, the `scanDocument` method now throws `Unimplemented` instead of a generic error.
- On Android, the `mlkitDocumentScannerVersion` variable has been updated to `16.0.0`.

### ML Kit Face Detection

[README](https://github.com/capawesome-team/capacitor-mlkit/blob/main/packages/face-detection/README.md){:target="_blank"} | [BREAKING](https://github.com/capawesome-team/capacitor-mlkit/blob/main/packages/face-detection/BREAKING.md){:target="_blank"}

- On Web, unimplemented methods now throw `Unimplemented` instead of `Unavailable`.

### ML Kit Face Mesh Detection

[README](https://github.com/capawesome-team/capacitor-mlkit/blob/main/packages/face-mesh-detection/README.md){:target="_blank"} | [BREAKING](https://github.com/capawesome-team/capacitor-mlkit/blob/main/packages/face-mesh-detection/BREAKING.md){:target="_blank"}

- On Web, unimplemented methods now throw `Unimplemented` instead of `Unavailable`.
- On iOS, the `processImage` method now throws `Unimplemented` instead of a generic error.

### ML Kit Selfie Segmentation

[README](https://github.com/capawesome-team/capacitor-mlkit/blob/main/packages/selfie-segmentation/README.md){:target="_blank"} | [BREAKING](https://github.com/capawesome-team/capacitor-mlkit/blob/main/packages/selfie-segmentation/BREAKING.md){:target="_blank"}

- On Web, unimplemented methods now throw `Unimplemented` instead of `Unavailable`.

### ML Kit Subject Segmentation

[README](https://github.com/capawesome-team/capacitor-mlkit/blob/main/packages/subject-segmentation/README.md){:target="_blank"} | [BREAKING](https://github.com/capawesome-team/capacitor-mlkit/blob/main/packages/subject-segmentation/BREAKING.md){:target="_blank"}

- On iOS, the `processImage`, `isGoogleSubjectSegmentationModuleAvailable`, and `installGoogleSubjectSegmentationModule` methods now throw `Unimplemented` instead of a generic error.

### NFC

[README](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/nfc/README.md){:target="_blank"} | [BREAKING](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/nfc/BREAKING.md){:target="_blank"}

- On Web, the following methods now return `UNIMPLEMENTED` instead of `UNAVAILABLE`: `format`, `respond`, `transceive`, `connect`, `close`, `isEnabled`, `openSettings`, `getAntennaInfo`, and `setAlertMessage`.

### Pedometer

[README](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/pedometer/README.md){:target="_blank"} | [BREAKING](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/pedometer/BREAKING.md){:target="_blank"}

- The plugin now automatically requests permissions when calling plugin methods instead of throwing an error. Use the `checkPermissions()` method beforehand if you need to check permissions first.

### PostHog

[README](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/posthog/README.md){:target="_blank"} | [BREAKING](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/posthog/BREAKING.md){:target="_blank"}

- The `posthog-js` peer dependency has been updated to `^1.306.2`.

### Printer

[README](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/printer/README.md){:target="_blank"} | [BREAKING](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/printer/BREAKING.md){:target="_blank"}

- On Android, the `androidxDocumentFileVersion` variable has been updated to `1.1.0`.
- On Android, the `androidxPrintVersion` variable has been updated to `1.1.0`.

### Purchases

[README](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/purchases/README.md){:target="_blank"} | [BREAKING](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/purchases/BREAKING.md){:target="_blank"}

- On Android, the `googlePlayBillingVersion` variable has been updated to `8.2.0`.

### RealtimeKit

[README](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/realtimekit/README.md){:target="_blank"} | [BREAKING](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/realtimekit/BREAKING.md){:target="_blank"}

- On Android, the `realtimekitUiVersion` variable has been updated to `0.3.1`.

### Share Target

[README](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/share-target/README.md){:target="_blank"} | [BREAKING](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/share-target/BREAKING.md){:target="_blank"}

- On Android, the `androidxExifInterfaceVersion` variable has been updated to `1.4.2`.

### Speech Recognition

[README](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/speech-recognition/README.md){:target="_blank"} | [BREAKING](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/speech-recognition/BREAKING.md){:target="_blank"}

- The plugin now automatically requests permissions when calling plugin methods instead of throwing an error. Use the `checkPermissions()` method beforehand if you need to check permissions first.
- On iOS, the default language has been changed from `Locale.current` to `Locale.preferredLanguages`. If you were relying on the previous behavior, you may need to explicitly set the `language` option.

### SQLite

[README](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/sqlite/README.md){:target="_blank"} | [BREAKING](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/sqlite/BREAKING.md){:target="_blank"}

- The SQLite WASM dependency is now restricted to version `3.50.3-build1` or lower due to a bug in higher versions.
- On Android, the `androidxSqliteVersion` variable has been updated to `2.6.2`.
- On Android, the `androidxSqliteFrameworkAndroidVersion` variable has been updated to `2.6.2`.
- On Android, the `netZeteticSqlcipherVersion` variable has been updated to `4.12.0`.
- The default database version management behavior has been changed. If neither `version` nor `upgradeStatements` are provided, no version is set (previously defaulted to `1`).

### Torch

[README](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/torch/README.md){:target="_blank"} | [BREAKING](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/torch/BREAKING.md){:target="_blank"}

- On Android, the `androidxCameraCoreVersion` variable has been updated to `1.5.2`.

### Wi-Fi

[README](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/wifi/README.md){:target="_blank"} | [BREAKING](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/wifi/BREAKING.md){:target="_blank"}

- The plugin now automatically requests permissions when calling plugin methods instead of throwing an error. Use the `checkPermissions()` method beforehand if you need to check permissions first.

### Zip

[README](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/zip/README.md){:target="_blank"} | [BREAKING](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/zip/BREAKING.md){:target="_blank"}

- The minimum iOS deployment target has been updated to **16.0** (instead of 15.0) to address several security vulnerabilities related to ZIP file handling in earlier iOS versions.

## Related Posts

- [How to Fix Capacitor Plugin Build Errors with AGP 9](./how-to-fix-capacitor-plugin-build-errors-with-agp-9.md)
- [Support 16 KB page sizes in Android with Capacitor](./support-16kb-page-sizes-with-capacitor.md)
