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 aus dem Support herausgezogen wurde und Node 14 am 30. April 2023 aus dem Support herausgezogen wird. Es wird empfohlen, die neueste LTS-Version von NodeJS zu verwenden.
-
Installieren Sie die
latestVersion von der Capacitor CLI in Ihrem Projekt:npm i -D @capacitor/cli@latest -
Führen Sie den folgenden Befehl aus, um der CLI die Migration zu überlassen:
npx cap migrateWenn keine Migrationsschritte erreicht werden können, wird zusätzliche Informationen im Terminalausgabe 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 auf Capacitor 5 zu migrieren.
Das Upgrade von Capacitor 4 iOS-Projekt zu Capacitor 5
-
Upgrade Xcode: Capacitor 5 erfordert Xcode 14.1+.
-
Aktualisieren Sie .gitignore: Änderungen wie folgende vornehmen:
.gitignoredatei:- App/Podfile.lock + App/output -
Update Assets, um ein einzelnes App-Icon zu verwenden: Xcode 14 unterstützt ein einzelnes App-Icon von 1024x1024. Stellen Sie sicher, dass Ihre AppIcon.appiconset nur die notwendigen Größen enthält.
Upgraden Sie Capacitor 4 Android-Projekt zu Capacitor 5
-
Upgrade Android Studio: Capacitor 5 erfordert Android Studio Flamingo | 2022.2.1 oder neuer, da aufgrund der Verwendung von Gradle 8 Java JDK 17 erforderlich ist. Java 17 ist in Android Studio Flamingo enthalten, daher sind zusätzliche Downloads nicht erforderlich.
-
AGP Upgrade Assistant ausführen: Android Studio kann bei einigen Updates im Zusammenhang mit Gradle und dem Verschieben von Paketen in Build-Dateien helfen. Um zu beginnen, führen Sie
Tools -> AGP Upgrade Assistant. -
Update Android-Projektvariablen: In Ihrer
variables.gradledatei, 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 in
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ürandroidSchemebestehenden 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 aktuelle Standard-Einstellung ist.{ server: { androidScheme: "http" } } -
Kotlin-Version aktualisieren: Wenn Ihr Projekt Kotlin verwendet, aktualisieren Sie die
kotlin_versionVariablen zu'1.8.20'.
Änderungen in der Pluginfunktion
Die folgende Pluginfunktion wurde geändert oder entfernt. Aktualisieren Sie Ihre code entsprechend:
- Aktionsschaltfläche
- 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 (
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/>) inAndroidManifest.xml. - Aktualisieren Sie das
androidxMaterialVersionVariablenwert auf1.8.0. - Aktualisieren Sie das
androidxExifInterfaceVersionVariablen zu1.3.6.
Gerät
- Ändern
DeviceId.uuidzuDeviceId.identifier. - Bei iOS 16+
DeviceInfo.namewird ein generischer Gerätename zurückgegeben, es sei denn, Sie fügen die entsprechenden Zugriffsrechte.
Standort
- Aktualisieren Sie
playServicesLocationVersionzu21.0.1.
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_versionzu1.8.20.
Lokale Benachrichtigungen
- Für Android 13 ist eine neue Laufzeitberechtigungsprüfung erforderlich, um lokale Benachrichtigungen zu planen, wenn sich der Zielwert auf SDK 33 richtet. Aufruf
checkPermissions()undrequestPermissions()entsprechend.
Push-Benachrichtigungen
- Für Android 13 ist ein neuer Laufzeitberechtigungsprüfung erforderlich, um Push-Benachrichtigungen zu erhalten, wenn SDK 33. Call
checkPermissions()undrequestPermissions()entsprechend. - Aktualisieren Sie das
firebaseMessagingVersionVariablen zu23.1.2.
Statusleiste
- Auf iOS wurde die Standard-Statusleiste-Animation geändert in
FADE.
Durch die Ausführung dieser Schritte und die Aktualisierung Ihres code entsprechend, sollten Sie jetzt erfolgreich Ihre Projekt von Capacitor 4 zu Capacitor 5 aktualisiert haben. Stellen Sie sicher, dass Sie Ihre Anwendung gründlich testen, um sicherzustellen, dass alle Funktionen und Plugins wie erwartet funktionieren.
Fortsetzen Sie mit dem Update von Updating von Capacitor 4 zu Capacitor 5: Ein Schritt-für-Schritt-Leitfaden
Wenn Sie Updating von Capacitor 4 zu Capacitor 5: Ein Schritt-für-Schritt-Leitfaden für die Planung von native Plugin-Arbeit verwenden, verbinden Sie es mit Plugin-Verzeichnis von Capgo für den Produktworkflow in Plugin-Verzeichnis von Capgo Capacitor Plugins von Capgo für die Implementierungsdetails in Capacitor Plugins von Capgo Hinzufügen oder Aktualisieren von Plugins für die Implementierungsdetails in Hinzufügen oder Aktualisieren von Plugins Alternativen zu Ionic Enterprise Plugins für den Produktworkflow in Alternativen zu Ionic Enterprise Plugins, und Nativbau von Capgo für den Produktworkflow in Nativbau von Capgo