Saltare al contenuto principale
Capacitor

Aggiornamento da Capacitor 4 a Capacitor 5: Guida Passo dopo Passo

Impara a aggiornare il tuo progetto da Capacitor 4 a Capacitor 5 con cambiamenti minimi, inclusi l'aggiornamento dei plugin ufficiali e degli strumenti richiesti.

Martin Donadieu

Martin Donadieu

Content Marketer

Aggiornamento da Capacitor 4 a Capacitor 5: Guida Passo dopo Passo

A differenza degli aggiornamenti precedenti, la transizione da Capacitor 4 a Capacitor 5 comporta cambiamenti minimi. Questa guida fornisce istruzioni passo dopo passo per aggiornare il tuo progetto a Capacitor 5, nonché una lista dei cambiamenti di rottura per i plugin ufficiali.

Nota: Capacitor 5 richiede NodeJS 16 o superiore, poiché Node 12 ha raggiunto la fine della vita e Node 14 raggiungerà la fine della vita il 30 aprile 2023. Si consiglia di utilizzare la versione LTS più recente di NodeJS.

  1. Installa la latest versione del Capacitor CLI nel tuo progetto:

    npm i -D @capacitor/cli@latest
  2. Esegui il seguente comando per consentire al CLI di gestire l'aggiornamento:

    npx cap migrate

    Se alcuni passaggi di aggiornamento non possono essere eseguiti, ulteriori informazioni saranno fornite nell'output del terminale. I passaggi di aggiornamento manuali sono elencati di seguito.

  3. Se hai installato l'estensione VS Code , consulta la sezione raccomandazioni dell'estensione per trovare l'opzione di migrare il tuo progetto a Capacitor 5.

Aggiornamento del progetto Capacitor 4 iOS a Capacitor 5

  1. Aggiorna Xcode: Capacitor 5 richiede Xcode 14.1+.

  2. Aggiorna .gitignore: Effettua le seguenti modifiche al tuo .gitignore file:

    - App/Podfile.lock
    + App/output
  3. Aggiorna Assets per utilizzare un'icona di app unica: Xcode 14 supporta un'icona di app unica di 1024x1024. Pulisci il tuo AppIcon.appiconset eliminando tutte le dimensioni non necessarie.

Aggiornamento del progetto Capacitor 4 Android a Capacitor 5

  1. Aggiorna Android Studio: Capacitor 5 richiede Android Studio Flamingo | 2022.2.1 o successivo a causa dell'utilizzo di Gradle 8, che richiede Java JDK 17. Java 17 è incluso in Android Studio Flamingo, quindi non sono necessari download aggiuntivi.

  2. Esegui l'assistente di aggiornamento di AGP: Android Studio può aiutare con alcune aggiornamenti relativi a Gradle e il movimento di pacchetti nei file di build. Per iniziare, esegui Tools -> AGP Upgrade Assistant.

  3. Aggiorna le variabili del progetto Android: Nel tuo variables.gradle file, aggiorna i tuoi valori ai seguenti minimi nuovi:

    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'
  4. Aggiorna i servizi di Google:

    # build.gradle
    dependencies {
    -       classpath 'com.google.gms:google-services:4.3.13'
    +       classpath 'com.google.gms:google-services:4.3.15'
    }
  5. Aggiorna il plugin di 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'
    }
  6. Aggiorna il wrapper di 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
  7. Disabilita Jetifier:

    # gradle.properties
    android.useAndroidX=true
    - android.enableJetifier=true
  8. Spostare il pacchetto 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
  9. Aggiorna androidScheme: In Capacitor 6, https sarà la impostazione predefinita per androidScheme per le app esistenti per consentire meglio agli applicativi Capacitor di utilizzare la funzione di riempimento automatico del sistema. Per evitare la perdita di dati a causa di questo cambiamento, impostare lo schema su http ora, anche se è l'impostazione predefinita corrente.

    {
      server: {
        androidScheme: "http"
      }
    }
  10. Aggiorna la versione di Kotlin: Se il tuo progetto utilizza Kotlin, aggiorna il kotlin_version Variabile '1.8.20'.

Modifiche e rimozioni della funzionalità del plugin

La seguente funzionalità del plugin è stata modificata o eliminata. Aggiorna il tuo code di conseguenza:

  • Scheda di azione
  • Navegatore
  • Camera
  • Dispositivo
  • Geolocalizzazione
  • Google Maps
  • Notifiche Locali
  • Notifiche Push
  • Barra di Stato

Scheda di Azione

  • Aggiorna il androidxMaterialVersion __CAPGO_KEEP_0__ 1.8.0.

Browser

  • Aggiorna il androidxBrowserVersion variabile a 1.5.0.

Camera

  • Per Android 13, aggiungi la autorizzazione di lettura delle immagini dei media (<uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/>) in AndroidManifest.xml.
  • Aggiorna la androidxMaterialVersion variabile a 1.8.0.
  • Aggiorna la androidxExifInterfaceVersion variabile a 1.3.6.

Dispositivo

  • Cambia DeviceId.uuid a DeviceId.identifier.
  • Su iOS 16+, DeviceInfo.name andrà a restituire un nome di dispositivo generico a meno che non aggiungi le autorizzazioni appropriate entitlements.

Geolocalizzazione

  • Aggiorna il playServicesLocationVersion a 21.0.1.

Google Maps

  • Aggiorna le seguenti variabili:
    • googleMapsPlayServicesVersion a 18.1.0.
    • googleMapsUtilsVersion a 3.4.0.
    • googleMapsKtxVersion a 3.4.0.
    • googleMapsUtilsKtxVersion a 3.4.0.
    • kotlinxCoroutinesVersion a 1.6.4.
    • androidxCoreKTXVersion a 1.10.0.
    • kotlin_version a 1.8.20.

Notifiche Locali

  • Per Android 13, è richiesta una nuova verifica di permesso di esecuzione per pianificare notifiche locali quando si mira a SDK 33. Chiamata checkPermissions() e requestPermissions() di conseguenza.

Notifiche Push

  • Per Android 13, è richiesta una nuova verifica di permesso di esecuzione per ricevere notifiche push quando si mira a SDK 33. Chiamata checkPermissions() e requestPermissions() di conseguenza.
  • Aggiorna il firebaseMessagingVersion variabile a 23.1.2.

Barra dello Stato

  • Su iOS, l'animazione predefinita della barra dello stato è stata modificata in FADE.

Seguendo questi passaggi e aggiornando il tuo code in conformità, dovresti ora aver aggiornato con successo il tuo progetto da Capacitor 4 a Capacitor 5. Assicurati di testare attentamente la tua applicazione per garantire che tutte le funzionalità e i plugin funzionino come previsto.

Aggiornamenti in tempo reale per le app Capacitor

Quando un bug nel layer web è attivo, invia la correzione attraverso Capgo invece di attendere giorni per l'approvazione della store. Gli utenti ricevono l'aggiornamento in background mentre le modifiche native rimangono nel normale percorso di revisione.

Inizia subito

Ultimi articoli dal nostro Blog

Capgo ti offre le migliori informazioni che ti servono per creare un'app mobile davvero professionale.