Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions docs/main/updating/9-0.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,21 @@ If any of the steps for the migration are not able to be completed, additional i

`androidx.core:core` 1.19.0 folds `core-ktx` into itself, and AGP 9 bundles the Kotlin Gradle Plugin natively while Gradle 9 fully removes `jcenter()`. These rarely affect an app directly, unless you (or an old/community plugin) still pin an old `core-ktx` version, apply Kotlin standalone, or reference `jcenter()` — see [Migrate core-ktx to core](#migrate-core-ktx-to-core) and [Update Kotlin and remove jcenter()](#update-kotlin-and-remove-jcenter) below.

Capacitor 9 also removes the Java APIs that were deprecated in previous major versions. If your app or plugin still uses any of them, replace them as follows.

| Removed | Replacement |
| :------ | :---------- |
| `CapConfig(AssetManager, JSONObject)` constructor | `CapConfig.loadDefault(Context)` to load from `capacitor.config.json`, or `CapConfig.Builder` for embedded use |
| `CapConfig.getObject(String)`, `getString(...)`, `getBoolean(...)`, `getInt(...)`, `getArray(...)` | The typed getters on `CapConfig` for main config values and the `PluginConfig` accessors for plugin config values |
| `PluginCall.save()` | `setKeepAlive(true)` |
| `PluginCall.isSaved()` | `isKeptAlive()` |
| `PluginCall.hasOption(String)` | Typed accessors (`getString(...)`, `getInt(...)`, etc.) |
| `PluginCall.isReleased()` | No replacement, released calls are managed by the bridge |
| `Bridge.CAPACITOR_HTTPS_INTERCEPTOR_START` | `CAPACITOR_HTTP_INTERCEPTOR_START`, all proxied requests are handled by it |
| `Plugin.getConfigValue(String)` | `getConfig()` and the typed accessors on `PluginConfig` |
| `MessageHandler(Bridge, WebView, Object)` constructor | `MessageHandler(Bridge, WebView)` |
| `WebViewLocalServer.PathHandler.getResponseHeaders()` | `buildDefaultResponseHeaders()` |

## Breaking changes in @capacitor/ios

If you're updating from Capacitor 8.4 or earlier, you also need to adopt the iOS UIScene lifecycle, which Xcode 27 requires — see [Updating to 8.5](/main/updating/8-5.md) for the full steps. Apps already on 8.5 have nothing further to do here.
Expand Down