En comparación con las actualizaciones anteriores, la transición desde Capacitor 4 a Capacitor 5 implica cambios de ruptura mínimos. Este guía proporciona instrucciones paso a paso para actualizar tu proyecto a Capacitor 5, así como una lista de cambios de ruptura para plugins oficiales.
Nota: Capacitor 5 requiere NodeJS 16 o superior, ya que Node 12 ha alcanzado el fin de vida y Node 14 alcanzará el fin de vida el 30 de abril de 2023. Se recomienda utilizar la versión LTS más reciente de NodeJS.
-
Instala la
latestversión de la Capacitor CLI en tu proyecto:npm i -D @capacitor/cli@latest -
Ejecute el siguiente comando para que el CLI se encargue de la migración:
npx cap migrateSi cualquier paso de migración no puede ser realizado, se proporcionará información adicional en la salida del terminal. Los pasos de migración manual están listados a continuación.
-
Si tiene instalado el extensión de VS Code , revise la sección de recomendaciones de la extensión para encontrar la opción de migrar su proyecto a Capacitor 5.
Actualizar Capacitor 4 proyecto iOS a Capacitor 5
-
Actualizar Xcode: Capacitor 5 requiere Xcode 14.1+.
-
Actualizar .gitignore: Haga los siguientes cambios en su
.gitignorearchivo:- App/Podfile.lock + App/output -
Actualizar Activos para utilizar un icono de aplicación único: Xcode 14 admite un icono de aplicación único de 1024x1024. Limpie su AppIcon.appiconset eliminando todas las tamaños innecesarios.
Actualizar Capacitor 4 proyecto Android a Capacitor 5
-
Actualice Android Studio: Capacitor 5 requiere Android Studio Flamingo | 2022.2.1 o una versión más reciente debido al uso de Gradle 8, que requiere Java JDK 17. Java 17 viene con Android Studio Flamingo, por lo que no se necesitan descargas adicionales.
-
Ejecutar Asistente de Actualización de AGP: Android Studio puede ayudar con algunas actualizaciones relacionadas con Gradle y mover paquetes a archivos de compilación. Para empezar, ejecute
Tools -> AGP Upgrade Assistant. -
Actualizar Variables del Proyecto de Android: En tu archivo
variables.gradleactualice sus valores a los siguientes mínimos nuevos: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 Servicios de Google:
# 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 -
Mover 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á la configuración predeterminada 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 la configuración predeterminada actual.{ server: { androidScheme: "http" } } -
Actualizar 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 diálogo de acción
- Navegador
- Cámara
- Dispositivo
- Ubicación
- Mapas de Google
- Notificaciones locales
- Notificaciones de empuje
- Barra de estado
Hoja de acción
- Actualizar el
androidxMaterialVersionvariable a1.8.0.
Navegador
- Actualizar el
androidxBrowserVersionvariable a1.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. - Actualizar 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 los permisos correspondientes entrega de permisos.
Ubicación
- Actualizar el
playServicesLocationVersiona21.0.1.
Mapas de Google
- Actualizar las siguientes variables:
googleMapsPlayServicesVersiona18.1.0.googleMapsUtilsVersiona3.4.0.googleMapsKtxVersiona3.4.0.googleMapsUtilsKtxVersiona3.4.0.kotlinxCoroutinesVersiona1.6.4.androidxCoreKTXVersiona1.10.0.kotlin_versiona1.8.20.
Notificaciones locales
- Para Android 13, se requiere una nueva comprobación de permiso de tiempo de ejecución para programar notificaciones locales cuando se dirija a SDK 33. Llame
checkPermissions()yrequestPermissions()según.
Notificaciones Push
- Para Android 13, se requiere una nueva comprobación de permiso de tiempo de ejecución para recibir notificaciones push cuando se dirija a SDK 33. Llame
checkPermissions()yrequestPermissions()según. - Actualice el
firebaseMessagingVersionvariable a23.1.2.
Barra de Estado
- En iOS, la animación de la barra de estado predeterminada ha sido cambiada a
FADE.
Siguiendo estos pasos y actualizando tu code según corresponda, deberías tener actualizado exitosamente tu proyecto desde Capacitor 4 a Capacitor 5. Asegúrate de probar tu aplicación exhaustivamente para asegurarte de que todas las características y plugins funcionen como se espera.