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 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.
-
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 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 la extensión 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.
Actualizar 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
.gitignorefile:- 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 conjunto de iconos de aplicación AppIcon eliminando todas las tamaños innecesarios.
Actualizando Capacitor 4 Proyecto de Android a Capacitor 5
-
Actualizar Estudio de Android: Capacitor 5 requiere Estudio de Android Flamingo | 2022.2.1 o posterior debido al uso de Gradle 8, que requiere JDK de Java 17. Java 17 viene con Estudio de Android Flamingo, por lo que no se necesitan descargas adicionales.
-
Ejecutar Asistente de Actualización de AGP: Estudio de Android 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 de Proyecto de Android: En su
variables.gradlearchivo, actualice 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' -
Actualiza Servicios de Google:
# build.gradle dependencies { - classpath 'com.google.gms:google-services:4.3.13' + classpath 'com.google.gms:google-services:4.3.15' } -
Actualiza 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' } -
Actualiza 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 por defecto paraandroidSchemepara aplicaciones existentes para mejorar la capacidad de las aplicaciones Capacitor de utilizar la característica de relleno automático del sistema. Para evitar pérdidas de datos como resultado de este cambio, establezca el esquema enhttpahora, incluso si es la configuración por defecto actual.{ server: { androidScheme: "http" } } -
Actualizar versión de Kotlin: Si su proyecto utiliza Kotlin, actualice la
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 Push
- Barra de Estado
Ventana de Acción
- Actualizar el
androidxMaterialVersionvariable a1.8.0.
Navegador
- Actualizar el
androidxBrowserVersionvariable a1.5.0.
Cámara
- Para Android 13, agrega 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 entitlements.
Ubicación
- Actualizar el
playServicesLocationVersiona21.0.1.
Maps 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 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 ejecución para recibir notificaciones push cuando se dirija a SDK 33. Llamar
checkPermissions()yrequestPermissions()según. - Actualizar el
firebaseMessagingVersionvariable a23.1.2.
Barra de Estado
- En iOS, se ha cambiado la animación de la barra de estado por defecto a
FADE.
Siguiendo estos pasos y actualizando su code según corresponda, debería tener actualizado con éxito su proyecto desde Capacitor 4 a Capacitor 5. Asegúrese de probar su aplicación exhaustivamente para asegurarse de que todas las características y plugins funcionen como se espera.
Siga adelante desde Actualizar desde Capacitor 4 a Capacitor 5: Una Guía Paso a Paso
Si está utilizando Actualizar desde Capacitor 4 a Capacitor 5: Una Guía Paso a Paso para planificar el trabajo de plugin nativo, conectarlo con Capgo Directorio de Plugins para el flujo de trabajo del producto en Capgo Directorio de Plugins, Capacitor Plugins por Capgo para el detalle de implementación en Capacitor Plugins por Capgo, Agregar o Actualizar Plugins para el detalle 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.