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 requires NodeJS 16 or higher, as Node 12 has reached end-of-life and Node 14 will reach end-of-life on April 30th, 2023. It is recommended to use the latest LTS version of NodeJS.
-
Installieren Sie das
latestVersion 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 übernehmen:
npx cap migrateWenn keine Migrationsschritte erreicht werden können, werden weitere 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 umzustellen.
Capacitor 4 iOS-Projekt auf Capacitor 5 upgraden
-
Xcode aktualisieren: Capacitor 5 erfordert Xcode 14.1+.
-
.gitignore aktualisieren: Führen Sie die folgenden Änderungen an Ihrem
.gitignoreDatei:- App/Podfile.lock + App/output -
__CAPGO_KEEP_0__-Assets verwenden, um ein einzelnes App-Icon zu verwendenKontext: Lösungsseite App-Beispielbereich. Rolle: Bildbeschreibungstext. Gesehen in: Komponente Lösung/Beispielanwendung. Nachrichtenschlüssel `solution_app_examples_icon_alt` (Lösung App Beispiele Icon Beschreibung).
Capacitor 4 Android-Projekt auf Capacitor 5 aktualisieren
-
Android Studio aktualisieren: 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 keine zusätzlichen Downloads erforderlich.
-
AGP-Upgrade-Assistent ausführen: 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. -
Android-Projekt-Variablen aktualisieren: 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' -
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 -
Package umstellen 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 -
Android-Scheme aktualisieren: In Capacitor 6,
httpswird die Standard-Einstellung fürandroidSchemefür bestehende Apps, um Capacitor-Anwendungen besser die Möglichkeit zu geben, das System-Funktion Autofill zu verwenden. Um Datenverlust zu vermeiden, der durch diese Änderung entsteht, setzen Sie den Scheme aufhttpjetzt, selbst wenn es die aktuelle Standard-Einstellung ist.{ server: { androidScheme: "http" } } -
Kotlin-Version aktualisieren: Wenn Ihr Projekt Kotlin verwendet, aktualisieren Sie die
kotlin_versionVariablen auf'1.8.20'.
Änderungen in der Plugin-Funktionalität
Die folgende Plugin-Funktionalität wurde geändert oder entfernt. Aktualisieren Sie Ihre code entsprechend:
- Action Sheet
- Browser
- Kamera
- Gerät
- Standort
- Google Maps
- Lokale Benachrichtigungen
- Push-Benachrichtigungen
- Statusleiste
Aktionstabelle
- aktualisieren Sie die
androidxMaterialVersionVariablen auf1.8.0.
Browser
- Aktualisieren Sie das
androidxBrowserVersionVariable 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"/>inAndroidManifest.xml. - Aktualisieren Sie das
androidxMaterialVersionVariable auf1.8.0. - Aktualisieren Sie das
androidxExifInterfaceVersionVariable auf1.3.6.
Gerät
- Wechseln Sie
DeviceId.uuidaufDeviceId.identifier. - Auf iOS 16+,
DeviceInfo.namewird eine allgemeine Gerätenamen zurückgegeben, es sei denn, Sie fügen die entsprechenden Zugriffsrechte hinzu.
Geolocation
- Aktualisieren Sie das
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 ein neuer Laufzeitberechtigungsprüfungsaufruf erforderlich, um lokale Benachrichtigungen zu planen, wenn SDK 33 angepeilt wird. Aufruf
checkPermissions()undrequestPermissions()entsprechend.
Push-Benachrichtigungen
- Für Android 13 ist ein neuer Laufzeitberechtigungsprüfungsaufruf erforderlich, um Push-Benachrichtigungen zu empfangen, wenn SDK 33 angepeilt wird. Aufruf
checkPermissions()undrequestPermissions()entsprechend. - aktualisieren
firebaseMessagingVersionVariablen zu23.1.2.
Statusleiste
- Bei iOS wurde die Standardanimation der Statusleiste geändert zu
FADE.
Indem Sie diese Schritte befolgen und Ihr code entsprechend aktualisieren, sollten Sie jetzt 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.
Fortsetzen von Aktualisierung von Capacitor 4 auf Capacitor 5: Ein Schritt-für-Schritt-Leitfaden
Wenn Sie __CAPGO_KEEP_0__ verwenden Aktualisierung von Capacitor 4 auf Capacitor 5: Ein Schritt-für-Schritt-Leitfaden um native Plugin-Arbeit zu planen, verbinden Sie es mit Capgo Plugin-Verzeichnis zur Produktworkflow in Capgo Plugin-Verzeichnis, Capacitor Plugins von Capgo zur Implementierungsdetail in Capacitor Plugins von Capgo, Plugins hinzufügen oder aktualisieren für die Implementierungsdetails in Plugins hinzufügen oder aktualisieren Ionische Unternehmensplugin-Alternativen für das Produktworkflow in Ionische Unternehmensplugin-Alternativen und Capgo-Native Builds für das Produktworkflow in Capgo-Native Builds.