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 Capacitor CLI in Ihrem Projekt:npm i -D @capacitor/cli@latest -
Führen Sie den folgenden Befehl aus, um der CLI die Migration zu übernehmen:
npx cap migrateWenn bei den Migrationsschritten nicht alle Schritte erreicht werden können, werden weitere 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 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 an folgenden Punkten vornehmen:
.gitignorefile:- 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.
Upgrading Capacitor 4 Android Project 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.
-
Run AGP Upgrade Assistant: Android Studio kann bei einigen Updates im Zusammenhang mit Gradle und der Umstellung von Paketen in Build-Dateien helfen. Um zu beginnen, führen Sie
Tools -> AGP Upgrade Assistant. -
Update Android Project Variables: In Ihrem
variables.gradlefile, 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' -
Update Google Services:
# 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 -
Update androidScheme: In Capacitor 6,
httpswird die Standard-Einstellung fürandroidSchemefür bestehende Apps, um Capacitor-Anwendungen besser die Systemautofill-Funktion nutzen zu können. Um Datenverlust zu vermeiden, der durch diese Änderung entsteht, setzen Sie die 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 der Pluginfunktionen
Die folgenden Pluginfunktionen wurden geändert oder entfernt. Aktualisieren Sie Ihre code entsprechend:
- Aktionsschirm
- Browser
- Kamera
- Gerät
- Standort
- Google Maps
- Lokale Benachrichtigungen
- Push-Benachrichtigungen
- Statusleiste
Aktionsschaltfläche
- Aktualisieren Sie das
androidxMaterialVersionVariable auf1.8.0.
Browser
- Aktualisieren Sie das
androidxBrowserVersionVariable 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
androidxMaterialVersionVariable auf1.8.0. - Aktualisieren Sie das
androidxExifInterfaceVersionVariablen zu1.3.6.
Gerät
- Ändern
DeviceId.uuidzuDeviceId.identifier. - Bei iOS 16+ wird ein generischer Gerätename zurückgegeben, es sei denn, Sie fügen die entsprechenden
DeviceInfo.nameZugriffsrechte Standort.
Aktualisieren Sie
- zu
playServicesLocationVersionGoogle Maps21.0.1.
Aktualisieren Sie die folgenden Variablen:
- __CAPGO_KEEP_0__
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 Ziel SDK 33 auf 33 richtet. Aufruf
checkPermissions()undrequestPermissions()entsprechend.
Push-Benachrichtigungen
- Für Android 13 ist ein neuer Laufzeitberechtigungsprüfungsaufruf erforderlich, um Pushbenachrichtigungen zu erhalten, wenn SDK 33. Call
checkPermissions()undrequestPermissions()entsprechend. - Aktualisieren Sie das
firebaseMessagingVersionVariablen zu23.1.2.
Statusleiste
- Auf iOS wurde die Standard-Statusleiste-Animation in
FADE.
Durch die Ausführung dieser Schritte und die Aktualisierung Ihres code entsprechend, sollten Sie jetzt erfolgreich Ihre 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.
Fortsetzen Sie mit dem Update von Updating von Capacitor 4 auf Capacitor 5: Ein Schritt-für-Schritt-Leitfaden
Wenn Sie Updating von Capacitor 4 auf Capacitor 5: Ein Schritt-für-Schritt-Leitfaden für die Planung von native Plugin-Arbeit verwenden, verbinden Sie es mit Capgo Plugin Verzeichnis für den Produktworkflow in Capgo Plugin Verzeichnis 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, Ionic Enterprise Plugin Alternativen für den Produktworkflow in Ionic Enterprise Plugin Alternativen, und Capgo Native Builds für den Produktworkflow in Capgo Native Builds.