Saltare al contenuto

Debugging

GitHub

Se ricevi una rifiuto del cloud code e hai bisogno di walkthrough di rimediazione 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 la 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

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

Cosa significa

L'applicazione è 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 da cloud e i runner dei provider possono ricevere questa risposta anche quando la configurazione dell'applicazione è altrimenti valida.

Cosa fare

Riprovare da un dispositivo fisico su una rete di utente normale. Se il traffico proveniente dal provider è intenzionale, disabilitare temporaneamente Block provider infrastructure requests In the app’s Informazioni In questa sezione, 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 del 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 aspetta il prossimo ciclo di fatturazione.

Cosa significa

Il dispositivo già ha il bundle 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

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

Cosa fare

Cambia plugins.CapacitorUpdater.version a una versione semver valida, 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 tablet reale è stato bloccato perchÊ questo canale blocca dispositivi reali.

Cosa fare?

Abilitare gli aggiornamenti per dispositivi reali se si è trattato di un errore, oppure 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.

Cosa fare?

Abilitare gli aggiornamenti per emulatori in un canale di test, oppure 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 di destinazione 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. Vedere Problemi comuni di aggiornamento.

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 a 1.3.0.

Cosa fare

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

Cosa significa

Il canale blocca le modifiche di livello di patch mentre mantiene lo stesso MAJOR.MINOR.PATCH prefisso; solo le modifiche di suffisso sono consentite.

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 provato ad associarsi automaticamente a 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 alcun canale di override.

Cosa fare

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

Backend refusals when Capgo cannot serve or decrypt the bundle.

Cosa significa.

Capgo non è riuscito a generare un URL di download firmato valido e non era disponibile alcuna 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 non ci sono voci nel manifesto.

Cosa fare

Riavvia e riacquista la versione, quindi conferma che il pacchetto contiene contenuti file reali.

Cosa significa

La chiave pubblica di dispositivo di crittografia 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 di identificazione del dispositivo e del pacchetto nel console. Pubblica con la stessa chiave e versioni di plugin corrispondenti CLI.

Rifiuti di backend causati da configurazioni dell'applicazione o versioni di aggiornamento non supportate.

Cosa significa

L'applicazione ha inviato un ID dispositivo personalizzato, ma questa applicazione 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 aggiornamenti in tempo reale richiedono file locali e server.url è sconsigliato in produzione.

Cosa fare

Rimuovere o cancellare server.url per costruire build in produzione e mantenere i payload di aggiornamento 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+ (preferisci 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.

Era stato attivato un pacchetto sul dispositivo.

Ecco il significato

Cosa fare

Controlla i log nativi con

e verifica l'integritĂ , le percorso e le

path npx @capgo/cli@latest app debug e 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 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

Un'entry del manifesto non è riuscita a scaricare. version_name utilizza version:fileName per identificare l'asset.

Cosa fare

Risolve il problema di un asset mancante o bloccato, rigenera il manifesto e ricarica il bundle.

Cosa significa

Un file manifesto non ha superato la verifica del checksum.

Cosa fare

Ricarica il bundle con una versione attuale di CLI e verifica i checksum dei manifesti.

Cosa significa

Un file manifesto non è stato decompresso correttamente con Brotli.

Cosa fare

Verifica le impostazioni di compressione e ricarica gli asset interessati.

Cosa significa

La bundle non è riuscita a scaricarsi.

Cosa fare

Controlla la connettivitĂ  di rete, l'orario di 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

Chiamare 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 nei plugin piĂš vecchi che presentano la falla di crittografia come falla del checksum.

Cosa fare

Ricaricare con una 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 espliciti keyMismatch Sottosezione intitolata “decrypt_fail”

decrypt_fail

Cosa significa

La bundle scaricata non è riuscita a essere decrittografata.

Cosa fare

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

Section titled “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 la compressione supportata.

Cosa significa

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

Cosa fare

Riduci la dimensione del pacchetto o riprovare 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 metadata possono includere messaggio, stack, origine e contesto del bundle attivo.

Cosa fare

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

Cosa significa

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

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

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

Cosa significa

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

Cosa fare

Ispeziona i metadati per il passaggio fallito 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 JavaScript non catturato nel WebView. I metadati possono includere messaggio, URL della fonte, riga, colonna e stack.

Cosa fare

Installa il reporting degli errori nei livelli 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

Usa 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 errore 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.

Sezione intitolata “os_version_changed”

Cosa significa

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

Cosa significa

La versione del negozio di app nativa è cambiata, aiutando a separare le modifiche ai bundle nativi da quelle 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: Attualmente 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 nel menu bar di Xcode.
  • Seleziona il tuo dispositivo nella finestra laterale sotto la sezione Dispositivi.
  • Questo mostrerĂ  una lista di app installate dai sviluppatori per quel dispositivo.
  • Seleziona l'app che desideri esaminare e seleziona quindi l'icona dei puntini tre in basso a schermo.
  • Ecco dove puoi visualizzare il sistema di 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 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 l'App Data folder, e dovresti ora vedere alcuni cartelle come Documenti, Libreria, tmp, ecc.

Struttura 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 dell'app.

Esplora file di Android Studio mostrando cartella dati dell'app

Poi Trova il versions cartella per vedere tutte le versioni

Se stai utilizzando Debugging per pianificare il lavoro dei 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 per Plugin Enterprise di Ionic per il workflow del prodotto nelle alternative del Plugin Enterprise Ionic.