Rispetto agli aggiornamenti precedenti, la transizione da Capacitor 4 a Capacitor 5 comporta pochi cambiamenti 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 è giunto alla 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 il CLI la migrazione:
npx cap migrateSe alcune fasi di migrazione non possono essere eseguite, ulteriori informazioni saranno fornite nell'output del terminale. I passaggi di migrazione manuali sono elencati 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+.
-
Aggiorna .gitignore: Esegui le seguenti modifiche al tuo
.gitignorefile:- App/Podfile.lock + App/output -
Aggiorna Assets per utilizzare un'icona di app singolacontext: Pagina/area: Pagina di soluzione per esempi di app. Ruolo: Testo alternativo dell'immagine. Visualizzato in: componenti soluzioni/Esempio di app di soluzione.astro. Chiave di messaggio `solution_app_examples_icon_alt` (Testo alternativo icona app di soluzione).
Upgrading Capacitor 4 Android Project to Capacitor 5
-
Aggiornamento del progetto Android di __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ò aiutare con alcune aggiornamenti relativi a Gradle e il movimento dei pacchetti nei file di build. Per iniziare, esegui: In tuo
variables.gradlefile, aggiorna i valori ai seguenti nuovi minimi: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 -
Aggiorna androidScheme: In Capacitor 6,
httpssarà la impostazione predefinita perandroidSchemeper le app esistenti per consentire meglio agli applicazioni Capacitor di utilizzare il sistema del feature di Autofill. Per evitare la perdita di dati a causa di questo cambiamento, imposta lo schema ahttpora, anche se è l'impostazione predefinita corrente.{ server: { androidScheme: "http" } } -
Aggiorna la versione Kotlin: Se il tuo progetto utilizza Kotlin, aggiorna il
kotlin_versionvariabile a'1.8.20'.
Modifiche nella funzionalità dei plugin
La seguente funzionalità dei plugin è stata modificata o eliminata. Aggiorna il tuo code di conseguenza:
- Schermo di azione
- Navigatore web
- Camera
- Dispositivo
- Geolocalizzazione
- Mappa di Google
- Notifiche locali
- Notifiche Push
- Barra dello Stato
Scheda di Azione
- Aggiorna il
androidxMaterialVersionvariabile a1.8.0.
Browser
- Aggiorna il
androidxBrowserVersionvariabile 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
androidxMaterialVersionvariabile a1.8.0. - Aggiorna la
androidxExifInterfaceVersionvariabile a1.3.6.
Dispositivo
- Cambia
DeviceId.uuidaDeviceId.identifier. - On iOS 16+
DeviceInfo.nameritorna un nome dispositivo generico a meno che non aggiungi le autorizzazioni appropriate Geolocalizzazione.
Aggiorna la
- a
playServicesLocationVersioncontexts21.0.1.
Google Maps
- Aggiorna le seguenti variabili:
googleMapsPlayServicesVersionper18.1.0.googleMapsUtilsVersionper3.4.0.googleMapsKtxVersionper3.4.0.googleMapsUtilsKtxVersionper3.4.0.kotlinxCoroutinesVersionper1.6.4.androidxCoreKTXVersionper1.10.0.kotlin_versionNotifiche locali1.8.20.
Per Android 13, è richiesta una nuova verifica di autorizzazione runtime per pianificare 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()perrequestPermissions()di conseguenza.
Avvisi Push
- For Android 13, a new runtime permission check is required to receive push notifications when targeting SDK 33. Call
checkPermissions()Per Android 13, è richiesta una nuova verifica di autorizzazione runtime per ricevere avvisi push quando si mira a __CAPGO_KEEP_0__ 33. ChiamatarequestPermissions()e - contexto: Sito web di marketing Capgo. Ruolo: Etichetta UI breve o elemento di navigazione. Visualizzato in: pagina trust.astro. Chiave di messaggio `and` (E).
firebaseMessagingVersiondi conseguenza.23.1.2.
Aggiorna il
- variabile a
FADE.
By following these steps and updating your code accordingly, you should now have successfully updated your project from Capacitor 4 to Capacitor 5. Make sure to test your application thoroughly to ensure that all features and plugins are working as expected.
Keep going from Updating from Capacitor 4 to Capacitor 5: A Step-by-Step Guide
Seguendo questi passaggi e aggiornando il tuo __CAPGO_KEEP_0__ di conseguenza, dovresti ora aver aggiornato con successo il tuo progetto da __CAPGO_KEEP_1__ 4 a __CAPGO_KEEP_2__ 5. Assicurati di testare il tuo'applicazione attentamente per assicurarti che tutte le funzionalità e i plugin funzionino come previsto. Continua a leggere da Aggiornamento da __CAPGO_KEEP_0__ 4 a __CAPGO_KEEP_1__ 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 in Capgo Directory dei Plugin, Capacitor Plugin da Capgo per i dettagli di implementazione in Capacitor Plugin da Capgo Aggiunta o Aggiornamento dei Plugin per i dettagli di implementazione in Aggiunta o Aggiornamento dei Plugin, Sostituti dei Plugin Enterprise di Ionic per il flusso di lavoro del prodotto in Sostituti dei Plugin Enterprise di Ionic, e Capgo Costruzioni Native per il flusso di lavoro del prodotto in Capgo Costruzioni Native.