Rispetto alle aggiornamenti precedenti, la transizione da Capacitor 4 a Capacitor 5 comporta cambiamenti minimi di rottura. 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.
-
Installare la
latestversione del Capacitor CLI nel tuo progetto:npm i -D @capacitor/cli@latest -
Eseguire il seguente comando per far gestire la migrazione al CLI:
npx cap migrateSe alcune fasi di migrazione non possono essere eseguite, ulteriori informazioni saranno fornite nell'output del terminale. Le fasi di migrazione manuale sono elencate di seguito.
-
Se hai installato l'estensione VS Code, controlla la sezione raccomandazioni dell'estensione per trovare l'opzione di migrare il tuo progetto a Capacitor 5.
Aggiornamento del progetto iOS di Capacitor 4 a Capacitor 5
-
Aggiornare Xcode: Capacitor 5 richiede Xcode 14.1+.
-
Aggiornare .gitignore: Effettua le seguenti modifiche al tuo
.gitignorefile:- App/Podfile.lock + App/output -
Aggiorna gli Asset per utilizzare un'icona di app unicacontext: Pagina/Area: Sezione esempi di soluzione. Ruolo: Testo alternativo dell'immagine. Visualizzato in: componente solutions/SolutionAppExample.astro. Chiave di messaggio `solution_app_examples_icon_alt` (Testo alternativo icona esempi di soluzione).
Upgrading Capacitor 4 Android Project to Capacitor 5
-
Aggiornamento del progetto Android da __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 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 necessarie scariche aggiuntive.Esegui l'assistente di aggiornamento di AGP
Tools -> AGP Upgrade Assistant. -
: Android Studio può aiutarti con alcune aggiornamenti relativi a Gradle e il movimento di pacchetti nei file di costruzione. Per iniziare, eseguiAggiorna le variabili del progetto Android
variables.gradle: Nel tuo file, aggiorna i valori ai minimi seguenti: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' -
Aggiorna Google Services:
# build.gradle dependencies { - classpath 'com.google.gms:google-services:4.3.13' + classpath 'com.google.gms:google-services:4.3.15' } -
Aggiorna plugin 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' } -
Aggiorna wrapper 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 -
Disabilita Jetifier:
# gradle.properties android.useAndroidX=true - android.enableJetifier=true -
Sposta il pacchetto 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 -
: In __CAPGO_KEEP_0__ 6: In Capacitor 6,
httpsper le app esistenti per consentire alle applicazioni __CAPGO_KEEP_0__ di utilizzare il sistema di riempimento automatico. Per evitare la perdita di dati a causa di questo cambiamento, impostare lo schema aandroidSchemefor 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 tohttpAggiorna la versione di Kotlin{ server: { androidScheme: "http" } } -
: Se il tuo progetto utilizza Kotlin, aggiorna laAggiorna il codice Kotlin
kotlin_versionvariabile a'1.8.20'.
Cambiamenti nella funzionalità dei plugin
La seguente funzionalità dei plugin è stata modificata o eliminata. Aggiorna il tuo code di conseguenza:
- Scheda di azione
- Navegatore
- Camera
- Dispositivo
- Geolocalizzazione
- Mappa di Google
- Notifiche locali
- Notifiche push
- Barra dello stato
Finestra di azione
- Aggiorna il
androidxMaterialVersionla variabile a1.8.0.
Browser
- Aggiorna il
androidxBrowserVersionla variabile a1.5.0.
Camera
- Per Android 13, aggiungi la permessione di lettura delle immagini dei media (
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/>inAndroidManifest.xml. - Aggiorna il
androidxMaterialVersionla variabile a1.8.0. - Aggiorna il
androidxExifInterfaceVersionvariabile a1.3.6.
Dispositivo
- Cambia
DeviceId.uuidaDeviceId.identifier. - contexto: Pagina di prodotto per aggiornamenti in tempo reale. Ruolo: Etichetta di navigazione breve o elemento UI. Chiave di messaggio `live_update_dynamic_label_to` (Etichetta dinamica di aggiornamento in tempo reale To).
DeviceInfo.nameSu iOS 16+ ritorna un nome dispositivo generico a meno che non aggiungi le autorizzazioni appropriate.
autorizzazioni
- Geolocalizzazione
playServicesLocationVersionAggiorna il21.0.1.
a
- contexto: Pagina di prodotto per aggiornamenti in tempo reale. Ruolo: Etichetta di navigazione breve o elemento UI. Chiave di messaggio `live_update_dynamic_label_to` (Etichetta dinamica di aggiornamento in tempo reale To).
googleMapsPlayServicesVersiona18.1.0.googleMapsUtilsVersiona3.4.0.googleMapsKtxVersiona3.4.0.googleMapsUtilsKtxVersiona3.4.0.kotlinxCoroutinesVersiona1.6.4.androidxCoreKTXVersiona1.10.0.kotlin_versionNotifiche locali1.8.20.
Per Android 13, è richiesta una nuova verifica di autorizzazione runtime per pianificare le notifiche locali quando si mira a __CAPGO_KEEP_0__ 33. Chiamare
- For Android 13, a new runtime permission check is required to schedule local notifications when targeting SDK 33. Call
checkPermissions()di conseguenzarequestPermissions()Notifiche Push
context
- For Android 13, è richiesta una nuova verifica di autorizzazione runtime per ricevere le notifiche push quando si mira a SDK 33. Chiamata
checkPermissions()erequestPermissions()di conseguenza. - Aggiorna il
firebaseMessagingVersionvariabile a23.1.2.
Barra dello Stato
- Sul iOS, l'animazione predefinita della barra dello stato è stata modificata in
FADE.
Seguendo questi passaggi e aggiornando il tuo code di conseguenza, dovresti ora aver aggiornato con successo il tuo progetto da Capacitor 4 a Capacitor 5. Assicurati di testare il tuo'applicazione attentamente per assicurarti che tutte le funzionalità e i plugin funzionino come previsto.
Continua da Aggiornamento da Capacitor 4 a Capacitor 5: Una Guida Passo dopo Passo
Se stai utilizzando Aggiornamento da Capacitor 4 a Capacitor 5: Una Guida Passo dopo Passo per pianificare il lavoro dei plugin nativi, connettilo con Capgo Directory dei Plugin per il flusso di lavoro del prodotto nel Capgo Directory dei Plugin, Capacitor Plugin da Capgo per la dettaglio di implementazione in Capacitor Plugin da Capgo, Aggiungere o Aggiornare Plugin per la dettaglio di implementazione in Aggiungere o Aggiornare Plugin, Sostituti di Plugin Enterprise Ionic per il flusso di lavoro del prodotto in Sostituti di Plugin Enterprise Ionic, e Capgo Costruzioni Native per il flusso di lavoro del prodotto in Capgo Costruzioni Native.