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.
Nota: 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.
-
Instale la
latestversión de la Capacitor CLI en su proyecto:npm i -D @capacitor/cli@latest -
Ejecute el siguiente comando para que la CLI maneje la migración:
npx cap migrateSi algunos pasos de migración no pueden ser realizados, se proporcionará información adicional en la salida del terminal. Los pasos de migración manuales se enumeran a continuación.
-
Si tiene instalado el extension de VS Code, consulte la sección de recomendaciones de la extensión para encontrar la opción de migrar su proyecto a Capacitor 5.
Actualizando un proyecto de iOS de Capacitor 4 a Capacitor 5
-
Actualice Xcode: Capacitor 5 requiere Xcode 14.1+.
-
Actualizar .gitignore: Haga los siguientes cambios en su
.gitignorearchivo:- App/Podfile.lock + App/output -
Actualizar Assets para utilizar un icono de aplicación únicocontexto: Página/área: Página de soluciones de la aplicación. Rol: Texto de alternativa de la imagen. Visto en: componentes soluciones/SolutionAppExample.astro. Clave de mensaje `solution_app_examples_icon_alt` (Texto alternativo de icono de aplicación de soluciones).
Upgrading Capacitor 4 Android Project to Capacitor 5
-
Actualizando el proyecto de Android de __CAPGO_KEEP_0__ 4 a __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.
-
: __CAPGO_KEEP_0__ 5 requiere Android Studio Flamingo | 2022.2.1 o posterior debido al uso de Gradle 8, que requiere Java JDK 17. Java 17 viene con Android Studio Flamingo, por lo que no es necesario descargar nada adicional.Ejecutar Asistente de actualización de AGP
Tools -> AGP Upgrade Assistant. -
: Android Studio puede ayudar con algunas actualizaciones relacionadas con Gradle y mover paquetes a archivos de construcción. Para empezar, ejecute el comando de actualización de variables del proyecto de Android: En su
variables.gradleactualice sus valores a los siguientes nuevos mínimos: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' -
Actualizar Google Services:
# build.gradle dependencies { - classpath 'com.google.gms:google-services:4.3.13' + classpath 'com.google.gms:google-services:4.3.15' } -
Actualizar plugin de Gradle a 8.0.0:
# build.gradle dependencies { - classpath 'com.android.tools.build:gradle:7.2.1' + classpath 'com.android.tools.build:gradle:8.0.0' } -
Actualizar wrapper de Gradle a 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 -
Deshabilitar Jetifier:
# gradle.properties android.useAndroidX=true - android.enableJetifier=true -
Mueva el paquete a
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 -
Actualizar esquema de Android: En Capacitor 6,
httpsserá el ajuste predeterminado paraandroidSchemepara aplicaciones existentes para mejorar la capacidad de las aplicaciones Capacitor de utilizar la característica de relleno automático del sistema. Para evitar la pérdida de datos como resultado de este cambio, establezca el esquema enhttpahora, incluso si es el ajuste predeterminado actual.{ server: { androidScheme: "http" } } -
Actualice la versión de Kotlin: Si su proyecto utiliza Kotlin, actualice el
kotlin_versionvariable a'1.8.20'.
Cambios en la funcionalidad del plugin
La siguiente funcionalidad del plugin ha sido modificada o eliminada. Actualice su code según corresponda:
- Ventana de acción
- Navegador
- Cámara
- Dispositivo
- Ubicación
- Mapas de Google
- Notificaciones locales
- Notificaciones de Pila
- Barra de Estado
Cuadro de Acción
- Actualice el
androidxMaterialVersiona la1.8.0.
Navegador
- Actualice el
androidxBrowserVersiona la1.5.0.
Cámara
- Para Android 13, agregue la permiso de lectura de imágenes de medios (
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/>) enAndroidManifest.xml. - Actualice el
androidxMaterialVersionvariable a1.8.0. - Actualizar el
androidxExifInterfaceVersionvariable a1.3.6.
Dispositivo
- Cambiar
DeviceId.uuidaDeviceId.identifier. - En iOS 16+
DeviceInfo.namedevolverá un nombre de dispositivo genérico a menos que agregue las autorizaciones adecuadas Geolocalización.
Actualizar el
- a
playServicesLocationVersioncontext21.0.1.
Google Maps
- Actualizar las siguientes variables:
googleMapsPlayServicesVersiona18.1.0.googleMapsUtilsVersiona3.4.0.googleMapsKtxVersiona3.4.0.googleMapsUtilsKtxVersiona3.4.0.kotlinxCoroutinesVersiona1.6.4.androidxCoreKTXVersiona1.10.0.kotlin_versionNotificaciones locales1.8.20.
Para Android 13, se requiere una nueva comprobación de permiso de ejecución para programar notificaciones locales cuando se dirija a __CAPGO_KEEP_0__ 33. Llame a
- For Android 13, a new runtime permission check is required to schedule local notifications when targeting SDK 33. Call
checkPermissions()Notificaciones localesrequestPermissions()por lo tanto.
Notificaciones de Pulsación
- For Android 13, a new runtime permission check is required to receive push notifications when targeting SDK 33. Call
checkPermissions()Para Android 13, se requiere una nueva comprobación de permiso de ejecución para recibir notificaciones de pulsación al dirigirse a __CAPGO_KEEP_0__ 33. LlamarrequestPermissions()y - contexto: Página/área: Sitio web de marketing de Capgo. Rol: Etiqueta de IU corta o elemento de navegación. Visto en: página trust.astro. Clave de mensaje `and` (Y).
firebaseMessagingVersionpor lo tanto.23.1.2.
actualizar
- la
FADE.
By following these steps and updating your code accordingly, you should now have successfully updated your project from Capacitor 4 to Capacitor 5. Make sure to test your application thoroughly to ensure that all features and plugins are working as expected.
Keep going from Updating from Capacitor 4 to Capacitor 5: A Step-by-Step Guide
En iOS, se ha cambiado la animación de la barra de estado por defecto a Actualizando desde Capacitor 4 a Capacitor 5: Una Guía Paso a Paso para planificar el trabajo de plugins nativos, conectéalo con Capgo Directorio de Plugins para el flujo de trabajo del producto en Capgo Directorio de Plugins, Capacitor Plugins por Capgo para los detalles de implementación en Capacitor Plugins por Capgo, Agregar o Actualizar Plugins para los detalles de implementación en Agregar o Actualizar Plugins, Alternativas de Plugins de Ionic Enterprise para el flujo de trabajo del producto en Alternativas de Plugins de Ionic Enterprise, y Capgo Compilaciones Nativas para el flujo de trabajo del producto en Capgo Compilaciones Nativas.