Hai problemi con i conflitti di versione in Capacitor app? Questi problemi possono causare fallimenti del build, errori a runtime e malfunzionamenti dei plugin. Questa guida semplifica il processo in 5 passaggi pratici per identificare, risolvere e prevenire questi conflitti:
- Trova i conflitti: Usa
npx cap doctore i log di errore per rilevare versioni non corrispondenti. - Controlla le dipendenze: Esamina
package.jsoned esegui comandi comenpm outdatedper individuare incongruenze. - Aggiorna Capacitor Core: Sincronizza e aggiorna i componenti core gestendo i breaking changes.
- Risolvi problemi dei plugin: Allinea le versioni dei plugin al core e bloccali per evitare problemi futuri.
- Testa le modifiche: Pulisci, reinstalla le dipendenze e testa su dispositivi reali per garantire la stabilità.
Consiglio rapido: Strumenti come Capgo può semplificare il testing live e la gestione delle versioni.
✅ [Risolto] npm ERR! ERESOLVE impossibile risolvere …

Passaggio 1: Individuare i conflitti di versione
Individuare i conflitti di versione in anticipo può farti risparmiare ore di debugging ed evitare crash. Ecco come identificare questi problemi in modo efficace.
Controlla le versioni con Capacitor CLI

Il Capacitor CLI offre comandi utili per ispezionare le versioni delle dipendenze del tuo progetto. Apri il terminale, vai nella directory del progetto ed esegui:
npx cap doctor
Questo comando controlla lo stato della tua configurazione Capacitor e segnala eventuali discrepanze tra:
- Pacchetti core di Capacitor
- Dipendenze specifiche della piattaforma
- Plugin installati
Per un'analisi più dettagliata della tua configurazione, usa:
npx cap ls
Verranno visualizzati:
- Piattaforme installate (es. iOS, Android)
- Versioni dei plugin
- Versioni dei pacchetti core
Sebbene CLI sia un ottimo punto di partenza, i log di errore spesso forniscono indizi extra sui conflitti.
Leggi i log di errore
I log di errore possono rivelare conflitti di versione nascosti. Ecco alcuni pattern comuni e le loro cause:
| Tipo di errore | Descrizione | Causa |
|---|---|---|
| Errore di build | Incompatible plugin version |
La versione plugin non corrisponde al core di Capacitor |
| Errore a runtime | Method not found |
Il plugin usa metodi obsoleti |
| Errore di piattaforma | Gradle sync failed |
Dipendenze Android in conflitto |
Analizzando i log di errore, concentrati su:
- Stack trace: Spesso indicano i plugin o le dipendenze che causano il problema.
- Numeri di versione: Cerca eventuali requisiti di versione indicati nei log.
- Messaggi specifici della piattaforma: Presta attenzione agli errori relativi a iOS o Android.
Alcuni segnali di conflitti di versione includono:
- Crash durante l'uso dei plugin
- Funzioni attive su una piattaforma ma non su un'altra
- Comportamento inaspettato dopo gli update
Consiglio pro: Usa il logging verbose per ottenere dettagli sugli errori. Esegui questi comandi per un'analisi approfondita:
npx cap run android --verbose
npx cap run ios --verbose
I log verbose ti aiutano a individuare la causa principale dei conflitti più velocemente e con maggiore precisione.
Passaggio 2: Controlla le dipendenze del progetto
Dopo aver identificato i conflitti tramite CLI e i log di errore, è il momento di ispezionare le dipendenze del progetto per evitare problemi futuri.
Revisione package.json
Il tuo package.json elenca tutte le dipendenze del tuo progetto. Ecco un esempio:
{
"dependencies": {
"@capacitor/core": "5.5.1",
"@capacitor/ios": "5.5.1",
"@capacitor/android": "5.5.1",
"@capacitor/camera": "5.0.7"
}
}
Cose fondamentali da controllare:
- Dipendenze core: Assicurati che
@capacitor/core,@capacitor/ios, e@capacitor/androidsono alla stessa versione. - Versioni dei plugin: Verifica che le versioni dei plugin siano compatibili con la versione core di Capacitor.
- Peer dependencies: Controlla se ci sono avvisi relativi a conflitti tra peer dependency.
Per esaminare l'albero delle dipendenze, usa questo comando:
npm ls @capacitor/*
Usa npm e Yarn Strumenti

I package manager come npm e Yarn offrono comandi utili per rilevare e risolvere i problemi di dipendenza. Ecco come possono aiutarti:
| Comando | Scopo | Output |
|---|---|---|
npm outdated |
Elenca i pacchetti obsoleti | Mostra le versioni attuali e le più recenti |
npm audit |
Controlla le vulnerabilità di sicurezza | Segnala i rischi delle dipendenze |
yarn why package-name |
Spiega perché un pacchetto è installato | Mostra i percorsi delle dipendenze |
Esegui il seguente comando per un check completo del tuo Node.js ambiente e delle dipendenze del progetto:
npm doctor
Consigli chiave da seguire:
- Fai sempre il commit dei lock file nel version control.
- Specifica le versioni esatte di Capacitor (es.
5.5.1) nel tuopackage.json. - Testa accuratamente gli update sia su iOS che su Android.
Per gestire gli update in tempo reale e il version control, puoi usare tool come Capgo.
Una volta sistemate le dipendenze, puoi procedere all'update dei componenti core di Capacitor.
Passaggio 3: Aggiorna Capacitor Core
Mantenere aggiornati i componenti core di Capacitor garantisce fluidità all'app ed evita problemi di compatibilità. Questo processo aiuta a risolvere i conflitti di versione e mantiene tutto perfettamente sincronizzato.
Sincronizza gli aggiornamenti della piattaforma
Per aggiornare i componenti core di Capacitor, usa questi comandi:
npm install @capacitor/core@latest
npm install @capacitor/cli@latest
npx cap sync
Eseguendo il sync il comando aggiorna i file nativi, allinea le dipendenze dei plugin, regola le configurazioni della piattaforma e rigenera i file del progetto nativo. Prima di sincronizzare, fai un backup di ios e android folder per evitare perdite accidentali di dati.
Considera l'uso di Capgo per i live update, così da mantenere coerenti le versioni. Al termine del sync, controlla le modifiche a API per risolvere potenziali problemi.
Risolvere i breaking changes
L'aggiornamento del core di Capacitor potrebbe introdurre breaking changes. Segui questi passaggi per gestirli efficacemente:
1. Rivedi le modifiche di API
Controlla il changelog di Capacitor per eventuali breaking changes. Ad esempio:
// Old API (Capacitor 4)
Plugins.Camera.getPhoto()
// New API (Capacitor 5)
Camera.getPhoto()
Aggiorna il tuo code per adattarlo alle nuove API, se necessario.
2. Aggiornare le configurazioni della piattaforma
Controlla il tuo capacitor.config.json file per assicurarti che sia allineato al core aggiornato. Ad esempio:
{
"appId": "com.example.app",
"appName": "MyApp",
"webDir": "dist",
"bundledWebRuntime": false,
"plugins": {
"SplashScreen": {
"launchShowDuration": 3000
}
}
}
3. Verifica la compatibilità dei plugin
| Componente | Cosa fare | Come verificare |
|---|---|---|
| Plugin nativi | Aggiorna per allinearti alla nuova versione core | Testa le funzionalità native |
| Plugin personalizzati | Controlla eventuali modifiche alle interfacce | Esegui i test specifici del plugin |
| Implementazione web | Aggiorna le chiamate ai plugin web | Test nel browser |
Consiglio Pro: Per gli aggiornamenti di versione major (come il passaggio da 4.x a 5.x), aggiorna una versione alla volta. Questo facilita l'individuazione e la risoluzione dei problemi.
Una volta completati questi passaggi, testa accuratamente la tua app per assicurarti che tutte le funzionalità operino correttamente con il core aggiornato.
Step 4: Fix Plugin Version Issues
I conflitti di versione dei plugin possono compromettere le performance della tua app Capacitor. Ecco come gestirli e risolverli efficacemente.
Aggiorna i plugin
Mantieni i plugin allineati al core di Capacitor eseguendo questo comando:
npx npm-check-updates "@capacitor/*" --target latest
Per un aggiornamento completo dei plugin Capacitor, usa:
npm install @capacitor/core@latest @capacitor/cli@latest @capacitor/ios@latest @capacitor/android@latest
Dopo l'aggiornamento, testa le funzionalità native per confermarne la compatibilità.
| Tipo di update | Comando | Scopo |
|---|---|---|
| Singolo Plugin | npm install @capacitor/plugin-name@version |
Aggiorna un plugin |
| Tutti i Plugin | npx npm-check-updates "@capacitor/*" -u |
Aggiorna tutto |
| Versione Specifica | npm install @capacitor/plugin-name@x.x.x |
Blocca una versione specifica |
Blocca versioni dei Plugin
Per evitare conflitti futuri, blocca le versioni dei tuoi plugin in package.json. Questo garantisce un comportamento coerente tra gli ambienti di sviluppo e produzione.
Aggiungi un campo “resolutions” al tuo package.json file:
{
"resolutions": {
"@capacitor/core": "5.0.0",
"@capacitor/ios": "5.0.0",
"@capacitor/android": "5.0.0"
}
}
Per gli utenti Yarn, applica queste risoluzioni con:
yarn add --force
“Abbiamo rilasciato gli aggiornamenti OTA di Capgo in produzione per la nostra base di oltre 5000 utenti. Il funzionamento è molto fluido: quasi tutti i nostri utenti sono aggiornati entro pochi minuti dal deployment dell'OTA su @Capgo.” - colenso [1]
L'uso di strumenti come Capgo può aiutare a gestire gli aggiornamenti dei plugin e mantenere la coerenza delle versioni, specialmente quando introduci modifiche critiche.
Consigli per la gestione delle versioni:
- Testa accuratamente gli aggiornamenti nel tuo ambiente di sviluppo.
- Documenta le versioni compatibili dei plugin e annota eventuali breaking changes.
- Segui il semantic versioning per pianificare gli aggiornamenti in modo efficace.
- Mantieni dei backup della tua configurazione funzionante.
Passa al Passaggio 5 per testare le modifiche in tutti gli ambienti.
Passaggio 5: Verifica le modifiche
Dopo aver risolto i conflitti di versione, è fondamentale testare tutto accuratamente per garantire che l'app rimanga stabile e pronta per gli update in ogni ambiente.
Testing locale
Inizia eseguendo questi comandi per confermare che tutto funzioni come previsto:
- Pulisci e reinstalla le dipendenze:
npm cache clean --force
rm -rf node_modules
npm install
- Verifica le build delle piattaforme:
npm run build
npx cap sync
- Apri gli IDE nativi per ulteriori test:
npx cap open ios
npx cap open android
Cosa verificare:
| Area di test | Cosa controllare |
|---|---|
| Funzionalità core | Navigazione, persistenza dati, chiamate API |
| Funzioni native | Fotocamera, geolocalizzazione, accesso al file system |
| Integrazione plugin | Funzionalità di ogni plugin aggiornato |
| Prestazioni | Tempo di avvio app, transizioni, uso della memoria |
Una volta che i test locali confermano che le funzionalità base dell'app sono intatte, passa ai test su dispositivi reali tramite i canali Over-the-Air (OTA).
Live Testing con Capgo

Dopo aver verificato le modifiche localmente, è il momento di testare in un ambiente live. Configura i canali di testing con questi comandi:
npx @capgo/cli init
npx @capgo/cli create-channel beta
Workflow di test:
- Distribuisci i fix su un canale beta e monitora le performance usando gli strumenti di analytics di Capgo.
- Monitora il tasso di successo degli update tramite la dashboard di Capgo, che ha già erogato oltre 23,5 milioni di update su 750 app in produzione [1].
- In caso di problemi, usa la funzione di rollback con un clic di Capgo per annullare le modifiche istantaneamente.
“Seguiamo lo sviluppo agile e @Capgo è fondamentale per fornire rilasci continui ai nostri utenti!” - Rodrigo Mantica [1]
Capgo vanta un tasso di successo globale dell'82%, con update che raggiungono il 95% degli utenti attivi in sole 24 ore [1]. Usa i selettori di channel per testare le pull request direttamente nell'app, assicurandoti che tutto funzioni prima del merge.
Conclusione: Mantieni sotto controllo le versioni della tua app
Gestire i conflitti di versione in app Capacitor richiede un approccio chiaro e organizzato. Il processo in cinque step di questa guida offre un modo affidabile per mantenere la stabilità dell'app e risolvere i problemi di versione.
Seguendo questi passaggi, i team possono garantire la stabilità delle proprie app nel tempo. Ad esempio, usare gli strumenti di live update come Capgo permette deployment rapidi ed efficienti. [1].
Ecco su cosa si concentrano i team di successo:
| Pratica | Vantaggio |
|---|---|
| Controlli regolari di CLI | Individuare in anticipo i problemi di dipendenza |
| Testing automatizzato | Rilevare problemi di versione prima del lancio |
| Monitoraggio Live update | Rollback rapido degli update problematici |
| Version pinning | Mantenere coerenti le dipendenze |
Gestire le versioni dell'app va oltre la risoluzione dei conflitti: serve a garantire un'esperienza utente fluida e affidabile. Seguendo queste pratiche e sfruttando gli strumenti live update, puoi far girare le tue app Capacitor senza intoppi.
Continua da 5 passaggi per risolvere i conflitti di versione nelle app Capacitor
Se stai usando 5 passaggi per risolvere i conflitti di versione nelle app Capacitor per pianificare rollback e version control, connettilo a Rollback per i dettagli di implementazione nei Rollback, Targeting delle versioni per i dettagli di implementazione nel Version Targeting, Comportamento degli aggiornamenti per i dettagli di implementazione nell'Update Behavior, bundle per i dettagli di implementazione nel bundle, e Live Updates di Capgo per il workflow del prodotto in Capgo Live Updates.