Saltare al contenuto

Debugging

GitHub

Se ottieni un rifiuto del cloud code e hai bisogno di walkthroughs di rimediamento piĂš approfonditi, vedi Problemi di aggiornamento comuni.

Capgo i log possono includere metadati per l'evento. Nel dashboard, filtra per l'azione in snake_case code, 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 di origine, la riga e la colonna, lo stato del processo, la pressione della memoria o la ragione specifica del sistema operativo. I log piĂš vecchi possono ancora mostrare gli alias in 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 sono ignorati per evitare che il traffico dei bot venga considerato come dispositivi fatturabili.

Cosa fare

Ignore questo per gli utenti reali. Riprovare da reti normali e dispositivi reali, o attendere e controllare nuovamente piĂš tardi.

Cosa significa

L'app è configurata per bloccare le richieste provenienti dalle aree IP note 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

Riprovare da un dispositivo fisico su una rete di utente normale. Se il traffico originato dal provider è intenzionale, disabilitare temporaneamente Block provider infrastructure requests In app, abilita nuovamente dopo il test. Le nuove app abilitano questo impostazione per impostazione predefinita; le app esistenti conservano la loro impostazione precedente disabilitata fino a quando non viene modificata. Sezione intitolata “needPlanUpgrade” Cosa significa

Cosa fare

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

Sezione intitolata “noNew”

Cosa significa

Sezione intitolata “rateLimited”

In app, abilita nuovamente dopo il test.

rateLimited

Informazioni

Cosa significa

La 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

Lo smartphone 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 tabletta reale è stato bloccato perchÊ questo canale blocca dispositivi reali.

Che fare

Abilitare gli aggiornamenti per dispositivi reali se si è trattato di un errore, 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 pacchetto piĂš vecchio della linea di base del dispositivo e blocca l'invio di aggiornamenti sotto la versione nativa.

Cosa fare

Pubblica un pacchetto 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 sul 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 tracciato. 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.

Allineare la strategia del canale con il tuo piano di rilascio minore, o consentire i salti di versione minore per questo track.

Sottosezione intitolata “disabilitaAggiornamentoAutoPatch”

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 del backend causati da una configurazione del canale mancante o incompatibile.

Cosa significa

Il dispositivo ha tentato di associarsi automaticamente a un canale privato che non consente l'autoassegnazione dei dispositivi (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

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

Cosa significa

Nessun canale predefinito è configurato e il dispositivo non ha alcun canale sovrascritto.

Cosa fare

Impostare un canale predefinito nel pannello di controllo o configurare defaultChannel in fase di 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 di 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 voci di manifesto.

Cosa fare

Ri-costruisci e riacquista la versione, quindi conferma che il pacchetto contiene contenuti 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 gli ID delle chiavi del dispositivo e del pacchetto nel console. Pubblica con la stessa chiave e versioni di plugin CLI corrispondenti.

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 ID personalizzati, quindi l'ID viene ignorato.

Cosa fare

Smettere di inviare ID personalizzati, o abilitare gli ID personalizzati solo quando il tuo workflow li richiede.

Cosa significa

server.url è impostato nel 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 costruzioni 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 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 sul download di una nuova versione al dispositivo.

Cosa significa

E' stato attivato un bundle sul dispositivo.

Cosa significa

E' fallito l'attivazione di un bundle sul dispositivo.

Cosa fare

Controllare i log nativi con npx @capgo/cli@latest app debug e verificare l'integritĂ , le percorso e i bundle. 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

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

Cosa significa

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

Cosa significa

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

Cosa significa

È stato scaricato un nuovo pacchetto — 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 dell'aggiornamento.

Cosa significa

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

Cosa significa

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

Cosa significa

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

Cosa fare

Risolvere l'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 correttamente con Brotli.

Cosa fare

Verificare le impostazioni di compressione e riacquisire gli asset interessati.

Cosa significa

La bundle non è stata scaricata.

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

Il pacchetto scaricato non ha superato la verifica del checksum. Cause comuni: malfunzionamento del calcolo CRC32 rispetto a SHA256 da un vecchio CLI caricato, o malfunzionamento della chiave di crittografia su plugin piĂš vecchi che manifestano la falla di crittografia 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 il plugin a 8.3.0+ per espliciti keyMismatch Sottosezione intitolata “decrypt_fail”

decrypt_fail

Cosa significa

Il pacchetto scaricato non è stato decrittografato.

Cosa fare

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

Sottosezione intitolata “checksum_fail”

Cosa significa

I percorsi Windows all'interno del file zip sono illegali.

Cosa fare

Riavvia l'elaborazione del bundle utilizzando percorsi Unix o sanificare 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.

Che fare

Assicurati che la struttura dell'archivio sia corretta prima di caricarlo.

Cosa significa

La dispositivo non è riuscito a decomprimere il bundle scaricato.

Che fare

Verifica l'integritĂ  dell'archivio e la compressione supportata.

Cosa significa

La download è fallito a causa della mancanza di memoria sul dispositivo.

Che 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, stack, origine e contesto del bundle attivo.

Che fare

Analizza i metadati e i log nativi. Abbinare il reporting degli errori JS e nativi (ad esempio Sentry) per individuare la strada del code che non funziona.

Cosa significa

Crash del sistema operativo nativo. I metadati possono includere piattaforma, motivo, stack 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

Verifica 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 verifica i metadati per i segnali di memoria disponibile.

Cosa significa

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

Cosa fare

Verifica i metadati per il tipo di risorsa o il motivo 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 passo 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 nella WebView. I metadati possono includere messaggio, URL di origine, riga, colonna e stack.

Cosa fare

Installa il reporting degli errori nei layer JS e 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 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.

Cosa 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.

Cosa fare.

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

Sezione intitolata “os_version_changed”

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

L'app è stata disinstallata o sono stati cancellati i dati Capgo.

  • 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: in corso il download di un pacchetto

Esiste un comando di debug per gli utenti di Capgo cloud.

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

Ciò ti consentirà di verificare tutti gli eventi che avvengono 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, hai bisogno di scaricare l'app sul tuo computer, puoi farlo in questo modo:

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

To raggiungere questo:

  • Collega il tuo dispositivo al tuo Mac e seleziona Menu > Dispositivi nella barra dei menu di Xcode.
  • Seleziona il tuo dispositivo nella finestra laterale sotto la sezione Dispositivi.
  • Questo mostrerĂ  una lista degli app sviluppatori installati su quel dispositivo.
  • Seleziona l'app che desideri esaminare e seleziona quindi l'icona dei puntini tre punti vicino alla parte inferiore dello schermo.
  • Ecco dove puoi visualizzare il sistema file corrente selezionando scaricare una snapshot di esso.

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

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

File xcappdata scaricato con contesto menu Mostra contenuto della cartella

Fai clic destro su questo file e seleziona Mostra contenuto della cartella per aprire la cartella.

Apre la cartella App Data, e dovresti ora vedere alcuni 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 la cartella data/data/NOME_APP/ dove Il nome dell'app è il tuo ID di app.

Esplora file di Android Studio mostrando il percorso della directory dell'app

Poi Trova il versions cartella per vedere tutte le versioni

If you are using 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 il 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.