Compared to previous updates, the transition from Capacitor 4 to Capacitor 5 involves minimal breaking changes. This guide provides step-by-step instructions for updating your project to Capacitor 5, as well as a list of breaking changes for official plugins.
Hinweis: Capacitor 5 erfordert NodeJS 16 oder höher, da Node 12 bereits aus dem Support herausgenommen wurde und Node 14 am 30. April 2023 aus dem Support herausgenommen wird. Es wird empfohlen, die neueste LTS-Version von NodeJS zu verwenden.
-
Installieren Sie die
latestVersion von Capacitor CLI in Ihrem Projekt:npm i -D @capacitor/cli@latest -
Führen Sie den folgenden Befehl aus, um es der CLI zu überlassen, die Migration durchzuführen:
npx cap migrateWenn nicht alle Migrationsschritte erreicht werden können, wird zusätzliche Informationen im Terminaloutput bereitgestellt. Manuelle Migrationsschritte sind unten aufgeführt.
-
Wenn Sie die VS Code-Erweiterung installiert haben, überprüfen Sie die Empfehlungen in der Erweiterung, um die Option zu finden, Ihr Projekt zu Capacitor 5 zu migrieren.
Das Upgrade von Capacitor 4 iOS-Projekt zu Capacitor 5
-
Upgrade Xcode: Capacitor 5 erfordert Xcode 14.1+.
-
Update .gitignore: Machen Sie folgende Änderungen an Ihrem
.gitignoreDatei:- App/Podfile.lock + App/output -
Update Assets verwenden Sie ein einzelnes App-IconKontext: Seite/Bereich: Lösungsseite App-Beispielabschnitt. Rolle: Bildbeschreibungstext. Gesehen in: Komponentenlösungen/SolutionAppExample.astro. Nachrichtenschlüssel `solution_app_examples_icon_alt` (Lösungs-App-Beispiel-Bildbeschreibungstext).
Upgrading Capacitor 4 Android Project to Capacitor 5
-
Upgrade von __CAPGO_KEEP_0__ 4 Android-Projekt zu __CAPGO_KEEP_1__ 5: Capacitor 5 requires Android Studio Flamingo | 2022.2.1 or newer due to the usage of Gradle 8, which requires Java JDK 17. Java 17 ships with Android Studio Flamingo, so no additional downloads are needed.
-
: __CAPGO_KEEP_0__ 5 erfordert Android Studio Flamingo | 2022.2.1 oder neuer aufgrund der Verwendung von Gradle 8, das Java JDK 17 erfordert. Java 17 ist in Android Studio Flamingo enthalten, daher sind keine zusätzlichen Downloads erforderlich.AGP Upgrade Assistant ausführen
Tools -> AGP Upgrade Assistant. -
: Android Studio kann Ihnen bei einigen Updates helfen, die mit Gradle und dem Verschieben von Paketen in Build-Dateien zusammenhängen. Um zu beginnen, führen SieUpdate von Android-Projektvariablen
variables.gradle: In Ihrer Datei aktualisieren Sie Ihre Werte auf die folgenden neuen Mindestwerte:minSdkVersion = 22 compileSdkVersion = 33 targetSdkVersion = 33 androidxActivityVersion = '1.7.0' androidxAppCompatVersion = '1.6.1' androidxCoordinatorLayoutVersion = '1.2.0' androidxCoreVersion = '1.10.0' androidxFragmentVersion = '1.5.6' coreSplashScreenVersion = '1.0.0' androidxWebkitVersion = '1.6.1' junitVersion = '4.13.2' androidxJunitVersion = '1.1.5' androidxEspressoCoreVersion = '3.5.1' cordovaAndroidVersion = '10.1.1' -
Google Services aktualisieren:
# build.gradle dependencies { - classpath 'com.google.gms:google-services:4.3.13' + classpath 'com.google.gms:google-services:4.3.15' } -
Gradle-Plugin auf 8.0.0 aktualisieren:
# build.gradle dependencies { - classpath 'com.android.tools.build:gradle:7.2.1' + classpath 'com.android.tools.build:gradle:8.0.0' } -
Gradle-Wrapper auf 8.0.2 aktualisieren:
# gradle-wrapper.properties distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists - distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-all.zip + distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.2-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -
Jetifier deaktivieren:
# gradle.properties android.useAndroidX=true - android.enableJetifier=true -
Paket zu
build.gradle:# AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> - <manifest xmlns:android="http://schemas.android.com/apk/res/android" - package="[YOUR_PACKAGE_ID]"> + <manifest xmlns:android="http://schemas.android.com/apk/res/android"># build.gradle android { + namespace "[YOUR_PACKAGE_ID]" compileSdkVersion rootProject.ext.compileSdkVersion -
Android-Scheme aktualisieren: In Capacitor 6
httpswerden die Standard-Einstellungen fürandroidSchemefür bestehende Apps, um Capacitor-Anwendungen besser die Nutzung des System-Autofill-Funktionen zu ermöglichen. Um Datenverlust zu vermeiden, der durch diese Änderung entsteht, setzen Sie den Scheme aufhttpjetzt, auch wenn es derzeit die Standard-Einstellung ist.{ server: { androidScheme: "http" } } -
Kotlin-Version aktualisieren: Aktualisieren Sie die Kotlin-Version, wenn Ihr Projekt Kotlin verwendet.
kotlin_versionVariablen zu'1.8.20'.
Änderungen in der Pluginfunktionalität
Die folgende Pluginfunktionalität wurde geändert oder entfernt. Aktualisieren Sie code entsprechend:
- Aussageblatt
- Browser
- Kamera
- Gerät
- Standort
- Google Maps
- Lokale Benachrichtigungen
- Push-Benachrichtigungen
- Statusleiste
Aktionsschaltfläche
- Aktualisieren Sie das
androidxMaterialVersionVariablenwert auf1.8.0.
Browser
- Aktualisieren Sie das
androidxBrowserVersionVariablenwert auf1.5.0.
Kamera
- Für Android 13 fügen Sie die Leseberechtigung für Medienbilder hinzu (
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/>inAndroidManifest.xml. - Aktualisieren Sie das
androidxMaterialVersionVariablenwert auf1.8.0. - Aktualisieren Sie das
androidxExifInterfaceVersionvariable zu1.3.6.
Gerät
- Ändern
DeviceId.uuidzuDeviceId.identifier. - context: Produktseite für Live-Updates. Rolle: Kurzer Benutzerschnittstelle-Label oder Navigationselement. Nachrichtenschlüssel `live_update_dynamic_label_to` (Live-Update-Dynamischer Label zu).
DeviceInfo.nameauf iOS 16+ wird ein generisches Gerätenamen zurückgeben, es sei denn, Sie fügen die entsprechenden.
Zugriffsberechtigungen
- Standort
playServicesLocationVersionaktualisieren21.0.1.
context: Produktseite für Live-Updates. Rolle: Kurzer Benutzerschnittstelle-Label oder Navigationselement. Nachrichtenschlüssel `live_update_dynamic_label_to` (Live-Update-Dynamischer Label zu).
- Google Maps aktualisieren Sie die folgenden Variablen:
googleMapsPlayServicesVersionzu18.1.0.googleMapsUtilsVersionzu3.4.0.googleMapsKtxVersionzu3.4.0.googleMapsUtilsKtxVersionzu3.4.0.kotlinxCoroutinesVersionzu1.6.4.androidxCoreKTXVersionzu1.10.0.kotlin_versionBenachrichtigungen1.8.20.
Für Android 13 ist eine neue Laufzeitberechtigung überprüfung erforderlich, um lokale Benachrichtigungen zu planen, wenn Sie sich auf __CAPGO_KEEP_0__ 33 richten. Aufrufen
- For Android 13, a new runtime permission check is required to schedule local notifications when targeting SDK 33. Call
checkPermissions()entsprechend.requestPermissions()Benachrichtigungen
zurück zur Oberfläche
- Für Android 13 ist eine neue Laufzeitberechtigungsprüfung erforderlich, um Push-Benachrichtigungen zu erhalten, wenn Sie sich auf SDK 33. Aufruf richten.
checkPermissions()undrequestPermissions()Daher. - Aktualisieren Sie
firebaseMessagingVersiondie23.1.2.
Statusleiste
- Bei iOS wurde die Standardanimation der Statusleiste geändert in
FADE.
Durch die Ausführung dieser Schritte und die Aktualisierung Ihres code entsprechend sollten Sie nun erfolgreich Ihr Projekt von Capacitor 4 auf Capacitor 5 aktualisiert haben. Stellen Sie sicher, dass Sie Ihre Anwendung gründlich testen, um sicherzustellen, dass alle Funktionen und Plugins wie erwartet funktionieren.
Fahren Sie mit dem Update von Capacitor 4 auf Capacitor 5: Eine Schritt-für-Schritt-Anleitung
Wenn Sie __CAPGO_KEEP_0__ 4 verwenden Update von Capacitor 4 auf Capacitor 5: Eine Schritt-für-Schritt-Anleitung um native Plugin-Arbeit zu planen, verbinden Sie es mit Capgo Plugin-Verzeichnis zur Produktionsablauf in Capgo Plugin-Verzeichnis, Capacitor Plugins von Capgo zur Implementierungsdetail in Capacitor Plugins von Capgo, Hinzufügen oder Aktualisieren von Plugins zur Implementierungsdetail in Hinzufügen oder Aktualisieren von Plugins, Ionische Unternehmens-Plugin-Alternativen zur Produktionsablauf in Ionische Unternehmens-Plugin-Alternativen, und Capgo Native Builds zur Produktionsablauf in Capgo Native Builds.