Saltare al contenuto

Debugging

GitHub

Se ottieni una rifiutazione del cloud code e hai bisogno di walkthrough di rimediamento piĂš approfonditi, vedi Problemi di aggiornamento comuni.

Capgo i log possono includere metadati per l'evento. Nel dashboard, filtra per l'azione code in snake_case e clicca sulla cella dei metadati per copiare il payload JSON completo. I metadati sono specialmente utili per gli eventi di crash e WebView perchĂŠ possono includere il messaggio di errore, l'URL della fonte, la riga e la colonna, lo stato del processo, la pressione della memoria o la ragione specifica della piattaforma. I log piĂš vecchi possono ancora mostrare gli alias di camelCase legacy elencati in parentesi.

Ogni titolo di sezione corrisponde all'azione code mostrata nella tabella dei log del console, quindi puoi collegarti direttamente a essa.

Rifiuti di backend relativi a fatturazione, limitazione, o stati non di errore.

Cosa significa

Capgo ha rilevato traffico che sembra provenire da Google o da infrastrutture cloud. Aggiornamenti meno di quattro ore vecchi vengono ignorati per evitare che il traffico dei bot venga considerato come dispositivi fatturabili.

Cosa fare

Ignora questo per gli utenti reali. Riprova da reti normali e dispositivi reali, o aspetta e controlla nuovamente in un secondo momento.

Cosa significa

La tua app è configurata per bloccare le richieste provenienti da indirizzi IP dei datacenter di Google e Apple. La protezione si applica alle verifiche degli aggiornamenti, alle statistiche e alle richieste di canale-self, quindi i probe ospitati in cloud e i provider runner possono ricevere questa risposta anche quando la configurazione dell'app è altrimenti valida.

Cosa fare

Riprova da un dispositivo fisico su una rete utente normale. Se il traffico originato dal provider è intenzionale, disabilita temporaneamente Blocca le richieste dell'infrastruttura del provider In the sezione dell'app Informazioni Abilita nuovamente dopo il test. Le nuove app abilitano questo impostazione di default; le app esistenti conservano la loro impostazione precedente disabilitata fino a quando non viene modificata.

Cosa significa

La tua organizzazione ha raggiunto il limite del piano o dispositivo. Il dispositivo non riceverĂ  aggiornamenti fino a quando non sarai salito di livello o il prossimo ciclo di fatturazione resettare l'uso.

Cosa fare

Aggiorna il tuo piano nel pannello di controllo o attendi il prossimo ciclo di fatturazione.

Cosa significa

Il dispositivo ha già la versione piÚ recente disponibile per il suo canale. Questo è uno stato normale, non un fallimento.

Cosa significa

Il dispositivo ha inviato troppi richieste di aggiornamento o canale in un breve intervallo di tempo.

Cosa fare

Smettere di chiamare le API di aggiornamento all'interno dei loop di rendering. Chiamare setChannel / getChannel solamente dalle azioni degli utenti, e impostare defaultChannel in capacitor.config.

Rifiuti del backend causati da metadati di versione nativa non validi.

Cosa significa

La versione dell'app nativa nella configurazione manca o non è un semver valido (x.y.z).

Cosa fare

Cambia plugins.CapacitorUpdater.version in semver valido, verifica in Verifica SemVerpoi ricostruisci e reinstalla l'app nativa.

Rifiuti backend quando la politica del canale blocca una piattaforma, un tipo di build o una classe di dispositivo.

Cosa significa

Il dispositivo esegue iOS, ma gli aggiornamenti di iOS sono disabilitati per questo canale.

Cosa fare

Abilita iOS nel canale se si trattava di un errore accidentale, o invia i build iOS a un canale dedicato quando il blocco è intenzionale.

Cosa significa

Il dispositivo esegue Android, ma gli aggiornamenti di Android sono disabilitati per questo canale.

Cosa fare

Abilita Android nel canale se si trattava di un errore accidentale, o invia i build Android a un canale dedicato quando il blocco è intenzionale.

Cosa significa

Il dispositivo esegue Electron, ma gli aggiornamenti di Electron sono disabilitati per questo canale.

Cosa fare

Abilita Electron nel canale se si trattava di un errore accidentale, o invia i build Electron a un canale dedicato quando il blocco è intenzionale.

Cosa significa

Il dispositivo è una versione di sviluppo, ma i build di sviluppo sono bloccati per questo canale.

Cosa fare

Consenti i build di sviluppo in un canale di test, o mantieni questo canale con rilascio solo e sposta i dispositivi di sviluppo altrove.

Cosa significa

Un rilascio di produzione chiamato /updates, ma gli aggiornamenti di produzione sono bloccati per questo canale.

Cosa fare

Consenti gli aggiornamenti di produzione nel canale se si trattava di un errore, o invia i build di produzione al canale corretto.

Cosa significa

A un telefono o tablet reale è stato bloccato perchÊ questo canale blocca dispositivi reali.

Che fare

Abilitare gli aggiornamenti per dispositivi reali se si è trattato di un errore accidentale, o mantenere la restrizione e indirizzare i dispositivi reali a un altro canale.

Cosa significa

Il dispositivo è un emulatore, ma gli aggiornamenti per emulatori sono disabilitati per questo canale.

Che fare

Abilitare gli aggiornamenti per emulatori in un canale di test, o mantenere questo canale bloccato per emulatori e utilizzare un altro canale per la validazione degli emulatori.

Regole di compatibilitĂ  degli aggiornamenti automatici

Sezione intitolata “Auto-update compatibility rules”

Rifiuti del backend quando le regole semver o di metadati bloccano il bundle di destinazione.

Cosa significa

L'aggiornamento automatico è disabilitato dalla politica di compatibilità del canale. I metadati includono auto_update con una regola di corrispondenza come major, minor, patch, metadata, o none.

Cosa fare

Cambia la politica di aggiornamento automatico del canale per consentire il tuo intento di distribuzione

Cosa significa

Il canale ha un bundle piĂš vecchio della linea di base del dispositivo e blocca l'invio di aggiornamenti sotto la versione nativa.

Cosa fare

Pubblica un bundle a o sopra la linea di base nativa, o disabilita la protezione sotto-nativa nel canale.

Cosa significa

Il canale richiede min_update_version, ma la versione nativa del dispositivo è inferiore a quel livello.

Cosa fare

Impostare min_update_version sulla bundle o rilascio target da una versione nativa piĂš recente.

Cosa significa

Il canale blocca i salto di versione maggiore, ad esempio 1.x.x a 2.x.x.

Cosa fare

Allineare la strategia del canale con il tuo piano di rilascio maggiore, o consentire i salti maggiore per questo track. Vedi Problemi di Aggiornamento Comuni.

Cosa significa

Il canale blocca i salti di versione minore rispetto alla linea di base nativa del dispositivo (version_build), ad esempio 1.2.3 Cosa fare 1.3.0.

Allinea la strategia del canale con il tuo piano di rilascio minore, o consenti ai salti di versione minore per questo track.

Sezione intitolata “disabilitaAggiornamentoAutomaticoPerPatch”

disableAutoUpdateToPatch

Cosa significa

Il canale blocca le modifiche di livello patch mentre mantiene lo stesso

prefisso; sono consentite solo le modifiche di suffisso. MAJOR.MINOR.PATCH Cosa fare

Cosa fare

Allinea il calendario di rilascio con la politica del canale, o consenti gli scatti di patch per questo tracciato.

Rifiuti di backend causati da una configurazione del canale mancante o incompatibile.

Cosa significa

Il dispositivo ha provato ad associarsi con un canale privato che non consente l'assegnazione automatica del dispositivo (allow_device_self_set è falso) e il canale non è pubblico.

Cosa fare

Abilita allow_device_self_set il canale o sposta il dispositivo su un canale pubblico o consentito.

Cosa significa

Il canale utilizza disable_auto_update: "version_number" ma il pacchetto min_update_version è nullo, quindi Capgo non può decidere quali dispositivi dovrebbero aggiornarsi.

Cosa fare

Riempi la configurazione mancante per quella regola o passa a un modo di aggiornamento automatico piĂš semplice.

Cosa significa

Non è configurato alcun canale di default e il dispositivo non ha alcuna sovrascrittura del canale.

Cosa fare

Imposta un canale di default nel pannello di controllo o configura defaultChannel nella costruzione.

Rifiuti del backend quando Capgo non può servire o decrittografare il pacchetto.

Cosa significa

Capgo non è riuscito a generare un URL di download firmato valido e non era disponibile alcun fallback del manifesto.

Cosa fare

Ricaricare il pacchetto, rigenerare i manifesti e verificare le impostazioni R2 o pacchetto pubblico.

Cosa significa

Il pacchetto assegnato al canale non contiene contenuti scaricabili: nessun external_urlCosa fare r2_pathNon una versione integrata, e nessuna entrate del manifesto.

Cosa fare

Ri-costruisci e riacquista la versione, poi conferma che il pacchetto ha contenuti di file reali.

Cosa significa

La chiave di crittografia del dispositivo non corrisponde alla chiave utilizzata per crittografare il pacchetto. I metadati possono includere device_key_id, bundle_key_idE version.

Cosa fare

Confronta le chiavi ID del dispositivo e del pacchetto nella console. Pubblica con la stessa chiave e versioni di plugin corrispondenti CLI.

Rifiuti di backend causati da configurazione dell'app o versioni di aggiornamento non supportate.

Cosa significa

L'app ha inviato un ID dispositivo personalizzato, ma questa app non accetta gli ID personalizzati, quindi l'ID viene ignorato.

Cosa fare

Interrompere l'invio degli ID personalizzati, o abilitare gli ID personalizzati solo quando il tuo workflow li richiede.

Cosa significa

server.url è impostato nella Capacitor config, quindi il WebView carica una URL remota al posto dei file di bundle locali. Capgo gli aggiornamenti in tempo reale richiedono file locali e server.url è sconsigliato in produzione.

Cosa fare

Rimuovere o cancellare server.url per costruire edizioni di produzione e mantenere i payload degli aggiornamenti locali. Questo code può apparire come una rifiuto del backend o come un valore di stato del dispositivo.

Cosa significa

L'aggiornamento del plugin è v4, che il backend non accetta piÚ.

Cosa fare

Aggiorna il plugin e CLI a v5+ (preferibilmente v8) con Capacitor v5+, ricostruisci e ripubblica i metadati del bundle.

Eventi del dispositivo per il flusso di aggiornamento normale, l'attivazione e il rollback.

Cosa significa

Azione di test interna utilizzata per verificare il pipeline dei dati.

Cosa significa

Capgo ha inviato informazioni di download per una nuova versione al dispositivo.

Cosa significa

Un pacchetto è stato attivato sul dispositivo.

Cosa significa

Un pacchetto non è riuscito ad attivarsi sul dispositivo.

Cosa fare

Controlla i log nativi con npx @capgo/cli@latest app debug e verifica l'integritĂ , le percorso e i notifyAppReady Flusso.

Cosa significa

Il dispositivo è stato resettato sul bundle predefinito.

Cosa significa

È stato cancellato un bundle sul dispositivo.

Gli eventi sul dispositivo per il progresso del download, la validazione dell'archivio e gli errori di installazione.

Cosa significa

La sequenza di download è iniziata al 0% di avanzamento.

Cosa significa

È stato scaricato un nuovo pacchetto — progresso indicato al 10%.

Cosa significa

È stato scaricato un nuovo pacchetto — progresso indicato al 20%.

Cosa significa

È stato scaricato un nuovo pacchetto — progresso indicato al 30%.

Cosa significa

A un nuovo pacchetto è stato scaricato — progresso indicato al 40%.

Cosa significa

A un nuovo pacchetto è stato scaricato — progresso indicato al 50%.

Cosa significa

A un nuovo pacchetto è stato scaricato — progresso indicato al 60%.

Cosa significa

A un nuovo pacchetto è stato scaricato — progresso indicato al 70%.

Cosa significa

A un nuovo pacchetto è stato scaricato — progresso indicato al 80%.

Cosa significa

A un nuovo pacchetto è stato scaricato — progresso indicato al 90%.

Cosa significa

La scarica del pacchetto è stata completata con successo.

Cosa significa

La dispositivo ha iniziato a scaricare l'elenco delle aggiornamenti.

Cosa significa

Il dispositivo ha completato il download del manifesto di aggiornamento.

Cosa significa

Il dispositivo ha iniziato a scaricare l'archivio del pacchetto.

Cosa significa

Il dispositivo ha completato il download dell'archivio del pacchetto.

Cosa significa

Una voce del manifesto non è stata scaricata. version_name utilizza version:fileName per identificare l'asset.

Cosa fare

Risolvere il problema di un asset mancante o bloccato, rigenerare il manifesto e riacquisire il bundle.

Cosa significa

Un file manifesto non ha superato la verifica del checksum.

Cosa fare

Riacquisire il bundle con una versione attuale di CLI e verificare i checksum dei manifesti.

Cosa significa

Un file manifesto non è stato decompresso con successo con Brotli.

Cosa fare

Verificare le impostazioni di compressione e riacquisire gli asset interessati.

Cosa significa

La bundle non è riuscita a scaricarsi.

Cosa fare

Controlla la connettivitĂ  di rete, la scadenza del URL firmato, la raggiungibilitĂ  del CDN e lo spazio di archiviazione del dispositivo.

Cosa significa

La bundle è stata installata ma l'app non l'ha mai chiamata notifyAppReady, quindi Capgo è stato annullato.

Cosa fare

Chiamalo notifyAppReady() context notifyAppReady was not called, roll back current bundle si mappa a questo code.

Cosa significa

La bundle scaricata non ha superato la verifica del checksum. Cause comuni: disallineamento CRC32 vs SHA256 da un vecchio CLI caricato, o disallineamento della chiave di crittografia su plugin piĂš vecchi che presentano la falla di decrittografia come falla del checksum.

Cosa fare

Ricaricare con un CLI/plugin (SHA256) attuale. Se si utilizza la crittografia, verificare che la chiave pubblica dell'app corrisponda alla chiave di caricamento, o aggiornare a plugin 8.3.0+ per errori espliciti. keyMismatch Sottosezione intitolata “decrypt_fail”

decrypt_fail

Cosa significa

La bundle scaricata non è stata decrittografata.

Cosa fare

Verificare le chiavi di crittografia e ricaricare la bundle con la coppia di chiavi corrispondente.

Sottosezione intitolata “checksum_fail”

Cosa significa

Il file zip contiene percorsi Windows non validi.

Cosa fare

Ricompila il pacchetto utilizzando percorsi Unix o sanifica i percorsi degli archivi prima di caricarli.

Cosa significa

I percorsi dei file all'interno del file zip non sono canonici.

Cosa fare

Correggi la generazione dei percorsi degli archivi prima di caricarli.

Cosa significa

Il file zip contiene percorsi di directory non validi.

Cosa fare

Ripristina la struttura dell'archivio prima dell'upload.

Cosa significa

Il dispositivo non è riuscito a scompattare il bundle scaricato.

Cosa fare

Verifica l'integritĂ  dell'archivio e il supporto per la compressione.

Cosa significa

L'errore di download è avvenuto perchÊ il dispositivo non aveva abbastanza memoria.

Cosa fare

Riduci la dimensione del pacchetto o riprova su un dispositivo con piĂš memoria libera.

Diagnostica di crash, memoria e WebView sul dispositivo. Ispeziona sempre il metadata JSON nel dashboard.

Cosa significa

L'app è entrata in background.

Cosa significa

L'app è entrata in foreground.

Cosa significa

Crash del layer JavaScript o Capacitor. I metadati possono includere messaggio, pila, origine e contesto del bundle attivo.

Che fare

Analizza i metadati e i log nativi. Abbinare il reporting degli errori JavaScript e nativi (ad esempio Sentry) per individuare la via di esecuzione del code che fallisce.

Cosa significa

Crash del sistema operativo nativo. I metadati possono includere piattaforma, motivo, pila e dettagli del processo.

Che fare

Utilizza i log di crash di Xcode o Logcat e correla con il bundle attivo dai metadati.

Cosa significa

Evento di non risposta dell'applicazione Android.

Che fare

Analizza le tracce di ANR in Logcat e riduci il lavoro di blocco del thread principale dopo gli aggiornamenti.

Cosa significa

L'OS ha ucciso l'app dopo pressione di memoria.

Cosa fare

Riduci l'uso di memoria dopo l'attivazione dell'aggiornamento e analizza i metadati per i segnali di memoria disponibile.

Cosa significa

L'OS ha ucciso l'app per l'uso eccessivo di risorse.

Cosa fare

Analizza i metadati per il tipo di risorsa o la ragione del motivo del sistema operativo.

Cosa significa

L'aggiornamento o l'avvio è fallito prima che il runtime normale fosse pronto.

Cosa fare

Ispeziona i metadati per il passaggio che sta fallendo e il messaggio di errore.

Cosa significa

Avviso di memoria iOS.

Cosa fare

Ispeziona il contesto di memoria nei metadati e riduci l'uso massimo dopo gli aggiornamenti.

Cosa significa

Errore di JavaScript non catturato nel WebView. I metadati possono includere messaggio, URL della fonte, riga, colonna e stack.

Cosa fare

Installa il reporting degli errori in JS e layer nativi per catturare la riga esatta che fallisce in produzione.

Cosa significa

Rifiuto di promessa non gestito nel WebView.

Cosa fare

Cattura le fallite asincrone con il reporting degli errori in JS e nativi.

Cosa significa

Un risorsa del WebView non è riuscita a caricare.

Cosa fare

Utilizza l'URL dei metadati e i dettagli dello stato per risolvere gli asset danneggiati o le regole di rete.

Cosa significa

La politica di sicurezza del contenuto ha bloccato una risorsa.

Cosa fare

Regola la CSP utilizzando la direttiva di metadati e i dettagli della URI bloccata.

Cosa significa

La sessione precedente del WebView non si è chiusa in modo pulito, il che può indicare loop di crash dopo un aggiornamento.

Cosa fare

Correla con gli eventi di crash e di errori del WebView prima e dopo il riavvio.

Cosa significa

Processo di rendering di WebView Android uscito.

Che fare.

Ispeziona i segnali di crash del processo di rendering nei metadati e nei log nativi.

Cosa significa.

Processo di contenuto di WebView iOS terminato.

Che fare.

Ispeziona il bundle attivo e l'URL della pagina dai metadati.

Eventi del contesto del dispositivo che aiutano a correlare il comportamento di aggiornamento con le modifiche al sistema operativo, alla versione nativa o al canale.

Cosa significa

La versione del sistema operativo del dispositivo è cambiata tra le verifiche.

Cosa significa

La versione dell'applicazione nativa è cambiata, aiutando a distinguere le modifiche al bundle nativo da quelle al bundle web.

Cosa significa

Il dispositivo ha interrogato il suo canale attuale.

Cosa significa

È stato impostato con successo un canale per il dispositivo.

Cosa significa

The app was uninstalled or Capgo data was cleared.

  • SUCCESS: installazione del pacchetto completata
  • ERROR: installazione o download fallito
  • PENDING: Download completato, rilascio in attesa
  • DELETED: Pacchetto cancellato, ancora presente per le statistiche
  • DOWNLOADING: Download di un pacchetto in corso

C'è un comando di debug per gli utenti di Capgo cloud.

Fermata del terminale
npx @capgo/cli@latest app debug

Questo ti permetterĂ  di verificare tutti gli eventi che accadono nell'app e trovare una soluzione se gli aggiornamenti non avvengono.

per trovare i tuoi log su Xcode

per trovare i tuoi log su Android Studio

  • Failed to download from si mappa a download_fail
  • notifyAppReady was not called, roll back current bundle si mappa a update_fail

Per debuggare su iOS, è necessario scaricare l'app sul proprio computer, si può fare cosÏ:

L'Xcode ha una funzionalitĂ  integrata per esaminare il sistema di file degli app installate dai sviluppatori su un dispositivo iOS. Menu finestra Xcode mostrante l'opzione Dispositivi e Simulatori

To raggiungere questo:

  • Collega il tuo dispositivo al tuo Mac e seleziona 'Finestra' > 'Dispositivi' nel menu bar di Xcode.
  • Seleziona il tuo dispositivo nella finestra laterale sotto la sezione 'Dispositivi'.
  • Questo mostrerĂ  una lista degli app installate dai sviluppatori per quel dispositivo.
  • Seleziona l'app che desideri esaminare e seleziona quindi l'icona dei puntini tre in alto a fondo dello schermo.
  • Ecco dove puoi visualizzare il sistema di file corrente selezionando 'Scarica un snapshot di esso'.

Pannello dispositivi di Xcode che mostra l'opzione di download del contenitore dell'app

Selezionando 'Download Container…' scaricherà e esporterà un snapshot del sistema di file come un file .xcappdata che puoi esplorare.

File xcappdata scaricato con contesto menu 'Mostra contenuto del pacchetto'

Fai clic destro su questo file e seleziona 'Mostra contenuto del pacchetto' per aprire la cartella.

Apre la cartella App Data e dovresti ora vedere alcune cartelle come Documenti, Libreria, tmp, ecc.

Struttura della cartella del contenitore dell'app iOS che mostra le cartelle Documenti e Libreria

Poi troverai una versione in 2 cartelle:

library/NoCloud/ionic_built_snapshots è necessario dopo il riavvio dell'applicazione

e documents/versions per il caricamento caldo

Per debuggare su Android, è necessario accedere al dispositivo da Android Studio:

  • Clicca su Visualizza > Finestre degli strumenti > Esplora file del dispositivo o clicca sul pulsante Esplora file del dispositivo nella barra degli strumenti per aprire l'Esplora file del dispositivo.
  • Seleziona un dispositivo dalla lista a discesa.
  • Apri il percorso data/data/NOME_APP/ dove Il nome dell'app è il tuo ID dell'applicazione.

Esplora i file del dispositivo Android Studio mostrando la cartella dati dell'applicazione

Poi trova il versions cartella per vedere tutte le versioni

If sei stai utilizzando Debugging per pianificare il lavoro di plugin nativi, connettilo con Utilizzando @capgo/capacitor-aggiornatore per la capacitĂ  nativa in Utilizzando @capgo/capacitor-aggiornatore, Capgo Directory dei Plugin per il flusso di lavoro del prodotto in Capgo Directory dei Plugin, Capacitor Plugin da Capgo per la dettaglio di implementazione in Capacitor Plugin da Capgo, Aggiungere o Aggiornare i Plugin per la dettaglio di implementazione in Aggiungere o Aggiornare i Plugin, e Alternative Plugin Enterprise Ionic per il flusso di lavoro del prodotto nelle alternative del plugin Ionic Enterprise.