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 manuales se enumeran 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.
Actualizando un proyecto de iOS de Capacitor 4 a Capacitor 5
-
Actualice Xcode: Capacitor 5 requiere Xcode 14.1+.
-
Actualice .gitignore: Haga los siguientes cambios en su
.gitignorearchivo:- App/Podfile.lock + App/output -
Actualizar Activos a utilizar un icono de aplicación únicoContexto: Página/área: Sección de ejemplos de soluciones de la página de soluciones. Rol: Texto de alternativa de la imagen. Visto en: componente solutions/SolutionAppExample.astro. Mensaje clave `solution_app_examples_icon_alt` (Texto de alternativa del icono de la aplicación de ejemplos de soluciones).
Upgrading Capacitor 4 Android Project to Capacitor 5
-
Actualizando el proyecto de Android __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 los archivos de compilación. Para empezar, ejecuteActualizar Variables del Proyecto de Android
variables.gradle: En su archivo, actualice 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 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 -
: En __CAPGO_KEEP_0__ 6,: In Capacitor 6,
httpspara aplicaciones existentes para mejorar la capacidad de las aplicaciones __CAPGO_KEEP_0__ 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 enandroidSchemefor existing apps to better enable Capacitor applications to use the system Autofill feature. To avoid data loss as a result of this change, set the scheme tohttpActualizar versión de Kotlin{ server: { androidScheme: "http" } } -
: Si su proyecto utiliza Kotlin, actualice laActualizar la versión de Kotlin
kotlin_versionvariable a'1.8.20'.
Cambios en la funcionalidad de Plugin
La siguiente funcionalidad de 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 Push
- Barras de Estado
Ventana de Acción
- Actualice el
androidxMaterialVersionvariable a1.8.0.
Navegador
- Actualice 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. - Actualice el
androidxMaterialVersionvariable a1.8.0. - Actualice 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 adecuados Permisos de ubicación.
Actualizar el
- a
playServicesLocationVersionGoogle Maps21.0.1.
Actualice las siguientes variables:
- entitlements
googleMapsPlayServicesVersionHasta18.1.0.googleMapsUtilsVersionHasta3.4.0.googleMapsKtxVersionHasta3.4.0.googleMapsUtilsKtxVersionHasta3.4.0.kotlinxCoroutinesVersionHasta1.6.4.androidxCoreKTXVersionHasta1.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
- For Android 13, a new runtime permission check is required to schedule local notifications when targeting SDK 33. Call
checkPermissions()según consecuencia.requestPermissions()Notificaciones Push
Push Notifications
- Foro Android 13 requiere una nueva comprobación de permisos de ejecución para recibir notificaciones push cuando se dirija a SDK 33. Llamar
checkPermissions()yrequestPermissions()por lo tanto. - 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 Actualización desde Capacitor 4 a Capacitor 5: Una Guía Paso a Paso para planificar el trabajo de plugin nativo, conecte con Capgo Carpeta de plugins para el flujo de trabajo del producto en Capgo Carpeta 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.