Im Vergleich zu vorherigen Updates beinhalten die Übergänge von Capacitor 4 auf Capacitor 5 nur minimale Bruchstellen. Diese Anleitung bietet Schritt-für-Schritt-Anweisungen zum Aktualisieren Ihres Projekts auf Capacitor 5 sowie eine Liste der Bruchstellen für offizielle Plugins.
Hinweis: Capacitor 5 erfordert NodeJS 16 oder höher, da Node 12 aus dem Support genommen wurde und Node 14 am 30. April 2023 aus dem Support genommen wird. Es wird empfohlen, die neueste LTS-Version von NodeJS zu verwenden.
-
Installiere das
latestVersion von Capacitor CLI in Ihrem Projekt:npm i -D @capacitor/cli@latest -
Führen Sie den folgenden Befehl aus, um die CLI die Migration zu übernehmen:
npx cap migrateWenn bei den Migrationsschritten nicht alle Schritte erreicht werden können, werden weitere Informationen im Terminaloutput bereitgestellt. Die manuellen 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 auf iOS auf Capacitor 5
-
Upgrade Xcode: Capacitor 5 erfordert Xcode 14.1+.
-
Aktualisieren Sie .gitignore: Führen Sie folgende Änderungen an Ihrem
.gitignoreDatei:- App/Podfile.lock + App/output -
Update Assets, um ein einzelnes App-Icon zu verwendenEntfernen Sie alle überflüssigen Größen aus Ihrer AppIcon.appiconset, da Xcode 14 nur eine einzelne App-Icon-Größe von 1024x1024 unterstützt.
Aktualisierung von Capacitor 4 Android-Projekt auf 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.
-
Lauf Assistent für AGP-AktualisierungMit Android Studio können einige Updates zu Gradle und dem Verschieben von Paketen in Build-Dateien unterstützt werden. Um zu beginnen, führen Sie
Tools -> AGP Upgrade Assistant. -
Aktualisieren Sie die Android-Projektvariablen: In Ihrem
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' -
Aktualisieren Sie Google Services:
# build.gradle dependencies { - classpath 'com.google.gms:google-services:4.3.13' + classpath 'com.google.gms:google-services:4.3.15' } -
Aktualisieren Sie den Gradle-Plugin auf 8.0.0:
# build.gradle dependencies { - classpath 'com.android.tools.build:gradle:7.2.1' + classpath 'com.android.tools.build:gradle:8.0.0' } -
Aktualisieren Sie den Gradle-Wrapper auf 8.0.2:
# 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 -
Deaktivieren Sie Jetifier:
# gradle.properties android.useAndroidX=true - android.enableJetifier=true -
Verschieben Sie das Paket auf
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 -
Aktualisieren Sie androidScheme: In Capacitor 6,
httpswird die Standard-Einstellung fürandroidSchemefür bestehende Apps, um die Verwendung des System-Autofill-Funktion durch Capacitor-Anwendungen zu ermöglichen. Um Datenverlust zu vermeiden, setzen Sie den Scheme aufhttpjetzt, selbst wenn es der aktuelle Standard ist.{ server: { androidScheme: "http" } } -
Kotlin-Version aktualisierenWenn Ihr Projekt Kotlin verwendet, aktualisieren Sie die
kotlin_versionvariable zu'1.8.20'.
Änderungen in der Plugin-Funktionalität
Die folgende Plugin-Funktionalität wurde geändert oder entfernt. Aktualisieren Sie Ihren code entsprechend:
- Aktionsschaltfläche
- Browser
- Kamera
- Gerät
- Standort
- Google Maps
- Benachrichtigungen
- Push-Benachrichtigungen
- Statusleiste
Aktionstabelle
- Aktualisieren Sie
androidxMaterialVersionVariablen auf1.8.0.
Browser
- Aktualisieren Sie
androidxBrowserVersionVariablen auf1.5.0.
Kamera
- Für Android 13 fügen Sie die Berechtigung zum Lesen von Medienbildern hinzu ("
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/>]AndroidManifest.xml. - Aktualisieren Sie
androidxMaterialVersionVariable auf1.8.0. - Aktualisieren Sie
androidxExifInterfaceVersionVariable auf1.3.6.
Gerät
- Ändern Sie
DeviceId.uuidaufDeviceId.identifier. - Auf iOS 16+
DeviceInfo.namewird eine allgemeine Gerätenamen zurückgeben, es sei denn, Sie fügen den entsprechenden Geolocation.
Zugriffsrechte
- 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.
Benachrichtigungen
- Für Android 13 ist eine neue Laufzeitberechtigungsprüfung erforderlich, um lokale Benachrichtigungen zu planen, wenn Sie sich auf SDK 33 richten.
checkPermissions()undrequestPermissions()entsprechend.
Push-Benachrichtigungen
- Für Android 13 ist eine neue Laufzeitberechtigungsprüfung erforderlich, um Push-Benachrichtigungen zu erhalten, wenn Sie sich auf SDK 33 richten. Aufrufen Sie
checkPermissions()undrequestPermissions()entsprechend. - Aktualisieren Sie
firebaseMessagingVersionVariablen auf23.1.2.
Statusleiste
- Bei iOS wurde die Standardanimation der Statusleiste geändert in
FADE.
Indem Sie diese Schritte befolgen und Ihre code entsprechend aktualisieren, 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.
Weitergehen von Updating von Capacitor 4 auf Capacitor 5: Eine Schritt-für-Schritt-Anleitung
Wenn Sie __CAPGO_KEEP_0__ verwenden Aktualisierung von Capacitor 4 zu Capacitor 5: Ein Schritt-für-Schritt-Leitfaden um native Plugin-Arbeit zu planen, 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 nativee Native Builds für den Produktworkflow in Capgo Native Builds.