Im Vergleich zu früheren Updates beinhaltet der Übergang von Capacitor 4 auf Capacitor 5 minimale Breaking Changes. Diese Anleitung bietet Schritt-für-Schritt-Anweisungen für die Aktualisierung Ihres Projekts auf Capacitor 5 sowie eine Liste der Breaking Changes für offizielle Plugins.
Hinweis: Capacitor 5 benötigt NodeJS 16 oder höher, da Node 12 das Ende der Unterstützung erreicht hat und Node 14 am 30. April 2023 das Ende der Unterstützung erreichen wird. Es wird empfohlen, die neueste LTS-Version von NodeJS zu verwenden.
npm i -D @capacitor/cli@latest
-
Führen Sie den folgenden Befehl aus, damit die CLI die Migration durchführt:
npx cap migrateFalls einige Migrationsschritte nicht durchgeführt werden können, werden zusätzliche Informationen in der Terminal-Ausgabe bereitgestellt. Manuelle Migrationsschritte sind unten aufgeführt.
-
Wenn Sie die VS Code-Erweiterung installiert haben, überprüfen Sie den Empfehlungsbereich der Erweiterung, um die Option zur Migration Ihres Projekts auf Capacitor 5 zu finden.
Aktualisierung des Capacitor 4 iOS-Projekts auf Capacitor 5
-
Gitignore aktualisieren: Nehmen Sie die folgenden Änderungen an Ihrer
gitignore
-Datei vor:- App/Podfile.lock+ App/output -
Assets auf ein einzelnes App-Icon aktualisieren: Xcode 14 unterstützt ein einzelnes App-Icon mit 1024x1024. Bereinigen Sie Ihr AppIcon.appiconset, indem Sie alle unnötigen Größen entfernen.
Aktualisierung des Capacitor 4 Android-Projekts auf Capacitor 5
-
AGP Upgrade Assistant ausführen: Android Studio kann bei einigen Updates im Zusammenhang mit Gradle und der Verschiebung von Paketen in Build-Dateien helfen. Starten Sie
Tools -> AGP Upgrade Assistant
. -
Android-Projektvariablen aktualisieren: Aktualisieren Sie in Ihrer
variables.gradle
-Datei Ihre Werte auf die folgenden neuen Mindestanforderungen:minSdkVersion = 22compileSdkVersion = 33targetSdkVersion = 33androidxActivityVersion = '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_HOMEdistributionPath=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.zipzipStoreBase=GRADLE_USER_HOMEzipStorePath=wrapper/dists -
Jetifier deaktivieren:
gradle.properties android.useAndroidX=true- android.enableJetifier=true -
Paket in
build.gradle
verschieben: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 -
androidScheme aktualisieren: In Capacitor 6 wird
https
die Standardeinstellung fürandroidScheme
für bestehende Apps sein, um Capacitor-Anwendungen besser in die Lage zu versetzen, die System-Autofill-Funktion zu nutzen. Um Datenverlust durch diese Änderung zu vermeiden, setzen Sie das Schema jetzt aufhttp
, auch wenn es die aktuelle Standardeinstellung ist.{server: {androidScheme: "http"}} -
Kotlin-Version aktualisieren: Wenn Ihr Projekt Kotlin verwendet, aktualisieren Sie die
kotlin_version
-Variable auf'1.8.20'
.
Änderungen der Plugin-Funktionalität
Die folgenden Plugin-Funktionalitäten wurden geändert oder entfernt. Aktualisieren Sie Ihren Code entsprechend:
- Action Sheet
- Browser
- Camera
- Device
- Geolocation
- Google Maps
- Local Notifications
- Push Notifications
- Status Bar
Action Sheet
- Aktualisieren Sie die
androidxMaterialVersion
-Variable auf1.8.0
Browser
- Aktualisieren Sie die
androidxBrowserVersion
-Variable auf1.5.0
Camera
- Fügen Sie für Android 13 die Berechtigung zum Lesen von Medienbildern (
<?xml version="1.0" encoding="utf-8"?>
) inAndroidManifest.xml
hinzu - Aktualisieren Sie die
androidxMaterialVersion
-Variable auf1.8.0
- Aktualisieren Sie die
androidxExifInterfaceVersion
-Variable auf1.3.6
Device
- Ändern Sie
DeviceId.uuid
zuDeviceId.identifier
- Auf iOS 16+ wird
DeviceInfo.name
einen generischen Gerätenamen zurückgeben, es sei denn, Sie fügen die entsprechenden Berechtigungen hinzu
Geolocation
- Aktualisieren Sie die
playServicesLocationVersion
auf21.0.1
Google Maps
-
Aktualisieren Sie die folgenden Variablen:
googleMapsPlayServicesVersion
auf18.1.0
googleMapsUtilsVersion
auf3.4.0
googleMapsKtxVersion
auf3.4.0
googleMapsUtilsKtxVersion
auf3.4.0
kotlinxCoroutinesVersion
auf1.6.4
androidxCoreKTXVersion
auf1.10.0
kotlin_version
auf1.8.20
### Lokale Benachrichtigungen
-
Für Android 13 ist eine neue Laufzeit-Berechtigungsprüfung erforderlich, um lokale Benachrichtigungen bei SDK 33 zu planen. Rufen Sie entsprechend
checkPermissions()
undrequestPermissions()
auf
Push-Benachrichtigungen
- Für Android 13 ist eine neue Laufzeit-Berechtigungsprüfung erforderlich, um Push-Benachrichtigungen bei SDK 33 zu empfangen. Rufen Sie entsprechend
checkPermissions()
undrequestPermissions()
auf - Aktualisieren Sie die Variable
firebaseMessagingVersion
auf2312
Status-Leiste
- Unter iOS wurde die Standard-Status-Leisten-Animation zu
FADE
geändert
Wenn Sie diese Schritte befolgen und Ihren Code entsprechend aktualisieren, sollten Sie Ihr Projekt erfolgreich 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