Saltare al contenuto

Debugging

GitHub

Se ricevi una rifiutazione del cloud code e hai bisogno di walkthroughs di rimediazione piĂš approfonditi, vedi Problemi di aggiornamento comuni.

I Capgo 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 di origine, la riga e la colonna, lo stato del processo, la pressione della memoria o la ragione specifica del sistema.

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

Rifiuti del backend legati a fatturazione, rallentamento o stati non di errore.

Cos'è

Capgo rileva traffico che sembra provenire da Google o da infrastrutture cloud. Aggiornamenti meno di quattro ore sono 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.

Cos'è

La tua 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

Riprova da un dispositivo fisico su una rete di utente reale. Se il traffico proveniente dal provider è intenzionale, disabilita temporaneamente Blocca le richieste dell'infrastruttura del provider nella sezione Informazioni Premi il pulsante tab, quindi abilitalo 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.

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 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 aggiornamenti o richieste di canale in un breve intervallo di tempo.

Cosa fare

Smetti di chiamare gli aggiornamenti API all'interno dei loop di rendering. Chiamali setChannel / getChannel solo dalle azioni degli utenti, e impostali defaultChannel in capacitor.config.

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

Cosa significa

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

Cosa fare

Imposta plugins.CapacitorUpdater.version verificare che sia valido semver, verificare in Verificatore di SemVer, quindi ricostruisci e reinstalla l'app nativa.

Rifiuti backend quando la politica del canale blocca una piattaforma, un tipo di costruzione 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 costrutti iOS a un canale dedicato quando il blocco è intenzionale.

Cos'è

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, o invia gli elaborati Android a un canale dedicato quando il blocco è intenzionale.

Cos'è

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, o invia gli elaborati Electron a un canale dedicato quando il blocco è intenzionale.

Cos'è

Il dispositivo è un elaborato di sviluppo, ma gli elaborati di sviluppo sono bloccati per questo canale.

Cosa fare

Consentire gli edizioni di sviluppo in un canale di test, o mantenere questa versione rilasciata solo e spostare gli dispositivi di sviluppo altrove.

Cosa significa

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

Cosa fare

Consentire gli aggiornamenti di produzione nel canale se si trattava di un errore, o indirizzare i rilasci di produzione al canale corretto.

Cosa significa

Un telefono o tablet reale è stato bloccato perchÊ questo canale blocca i dispositivi reali.

Cosa fare

Abilita gli aggiornamenti su dispositivi reali se si trattava di un errore accidentale, o mantieni la restrizione e invia i dispositivi reali su un altro canale.

Cosa significa

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

Cosa fare

Abilita gli aggiornamenti dell'emulatore in un canale di test, o mantieni questo canale bloccato per gli emulatori e utilizza 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

Gli aggiornamenti automatici sono disabilitati dalla politica di compatibilitĂ  del canale. I metadati includono auto_update con una regola di matching come major, minor, patch, metadata, o none.

Cosa fare

Cambiare la politica di aggiornamento automatico del canale per consentire il tuo rilascio previsto.

Cosa significa

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

Cosa fare

Pubblica un bundle a o sopra la baseline nativa, o disabilita la protezione sotto-versione nativa nel canale.

Cosa significa

Il canale richiede min_update_versionma la versione nativa del dispositivo è sotto il livello minimo.

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 tracciato. Vedi Problemi di Aggiornamento Comuni.

What it means

Il canale blocca i salti di versione minore rispetto alla baseline nativa del dispositivo (version_build), ad esempio 1.2.3 per 1.3.0.

What to do

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

What it means

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

What to do

Allinea il calendario di rilascio con la politica del canale, o consenti ai salti 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'auto-assegnazione dei dispositivi (allow_device_self_set Cosa fare

Abilita

sul canale o sposta il dispositivo su un canale pubblico o consentito. allow_device_self_set Sezione intitolata “canale non configurato correttamente”

channelMisconfigured

Cosa significa

Il dispositivo ha tentato di associarsi automaticamente a un canale privato che non consente l'auto-assegnazione dei dispositivi (

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

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

Cosa significa

Non è configurata una canale predefinito e il dispositivo non ha un sovrascrittura del canale.

Cosa fare

Imposta un canale predefinito nel pannello di controllo o configura defaultChannel nel build.

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 bundle pubblico.

Cosa significa

Il pacchetto assegnato al canale non contiene contenuti scaricabili: nessuno, nessuno, non è una versione integrata e nessuna voce del manifesto. external_urlSection titled “Bundle delivery and encryption” r2_pathBackend refusals when __CAPGO_KEEP_0__ cannot serve or decrypt the bundle.

Cosa fare

Ri-costruisci e ri-carica la versione, quindi conferma che il pacchetto contiene 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_id, e 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 del backend causati dalla configurazione dell'app o da 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 nella Capacitor configurazione, 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 le 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

Il plugin di aggiornamento è 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 sul 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 invia informazioni di download per una nuova versione al dispositivo.

Cosa significa

È stato attivato un bundle sul dispositivo.

Cosa significa

Cosa fare

Controlla i log nativi con

e verifica l'integrità del bundle, le percorrenze e npx @capgo/cli@latest app debug il flusso. notifyAppReady Sezione intitolata “reset”

Cos'è

Il dispositivo è stato resettato con il bundle predefinito.

Cos'è

È stato eliminato un bundle sul dispositivo.

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

Cos'è

È iniziato il download sequenziale 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

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

Cos'è

È stato scaricato un nuovo bundle — indicato il progresso al 90%.

Cos'è

È stato completato con successo il download del bundle.

Cos'è

È iniziato il download del manifesto di aggiornamento del dispositivo.

Cos'è

È stato completato il download del manifesto di aggiornamento del dispositivo.

Cos'è

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

Cos'è

Il dispositivo ha completato lo scaricamento dell'archivio del bundle.

Cos'è

È fallito il download di un'entry del manifesto. version_name utilizzato version:fileName per identificare l'asset.

Cosa fare

Risolvere l'asset mancante o bloccato, rigenerare il manifesto e ricaricare il bundle.

Cos'è

È fallito il controllo del checksum del file manifesto.

Cosa fare

Ricaricare il bundle con una versione attuale di CLI e verificare i checksum del manifesto.

Cos'è

È fallito il decompressione Brotli del file manifesto.

Cosa fare

Verificare le impostazioni di compressione e ricaricare gli asset interessati.

Cos'è

Il pacchetto non è stato scaricato.

Cosa fare

Verifica la connettivitĂ  della rete, l'orario di scadenza dell'URL firmato, la raggiungibilitĂ  del CDN e lo spazio di archiviazione del dispositivo.

Cosa significa

Il pacchetto è stato installato, ma l'app non l'ha mai chiamato, quindi __CAPGO_KEEP_0__ è stato annullato. notifyAppReady, so Capgo rolled back.

Chiamare

dopo che l'app ha completato l'avvio. notifyAppReady() Testo dei log nativi notifyAppReady was not called, roll back current bundle si mappa a questo code.

What significa

La bundle scaricata non ha superato la verifica del checksum. Cause comuni: malfunzionamento del calcolo CRC32 vs SHA256 da un vecchio CLI caricamento, o malfunzionamento della chiave di crittografia sui plugin piĂš vecchi che manifestano la fallita decrittazione come fallita verifica del checksum.

What fare

Ricarica 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 il plugin a 8.3.0+ per una decrittazione esplicita. keyMismatch errori.

What significa

La bundle scaricata non è stata decrittata.

What fare

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

What significa

The zip contiene percorsi Windows non autorizzati.

Cosa fare

Riavvia l'elenco dei file su percorsi Unix o pulisci i percorsi dell'archivio prima dell'upload.

Cosa significa

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

Cosa fare

Correggi la generazione dei percorsi dell'archivio prima dell'upload.

Cosa significa

I percorsi dei directory all'interno del zip non sono 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 le compressioni supportate.

Cosa significa

L'upload è fallito perchÊ il dispositivo è esaurito di memoria.

Cosa fare

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

Diagnostics 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 di JavaScript o layer Capacitor. Il metadata può includere messaggio, stack, source e contesto bundle attivo.

Cosa fare

Esegui l'analisi dei metadati e dei log nativi. Collega il reporting degli errori JS e nativi (ad esempio Sentry) per individuare la cartella code che causa problemi.

Cosa significa

Crash della piattaforma nativa. 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

Esegui l'analisi delle tracce di non risposta in Logcat e riduci il lavoro di blocco del thread principale dopo gli aggiornamenti.

Cosa significa

Il sistema operativo ha ucciso l'app dopo aver subito pressione di memoria.

Cosa fare

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

Cosa significa

Il sistema operativo ha ucciso l'app per un uso eccessivo di risorse.

Cosa fare

Controlla i metadati per il tipo di risorsa o il motivo del motivo del sistema operativo.

Cosa significa

L'aggiornamento o l'avvio sono falliti prima che il runtime normale fosse pronto.

Cosa fare

Verifica i metadati per il passaggio fallito e il messaggio di errore.

Cosa significa

Avviso di memoria iOS.

Cosa fare

Verifica 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 in JS e layer nativi per catturare la riga esatta di fallimento in produzione.

Cos'è

Rifiuto di promessa non gestito nel WebView.

Cosa fare

Cattura fallimenti asincroni con JS e reporting di errori nativi.

Cos'è

Un risorsa WebView non è riuscita a caricare.

Cosa fare

Usa l'URL di metadati e i dettagli dello stato per risolvere asset danneggiati o regole di rete.

Cos'è

La politica di sicurezza del contenuto ha bloccato una risorsa.

Cosa fare

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

Cosa significa

La sessione precedente di 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 di WebView prima e dopo il riavvio.

Cosa significa

Il processo di rendering di WebView Android è uscito.

Cosa fare

Analizza i segnali di crash del renderer nei metadati e nei log nativi.

Cosa significa

Il processo di contenuto WebView iOS è stato terminato.

Cosa fare

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

Eventi del contesto 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.

Cos'è

La versione dell'app nativa è stata modificata, aiutando a distinguere le modifiche al bundle nativo da quelle al bundle web.

Cos'è

Il dispositivo ha interrogato il suo canale attuale.

Cos'è

È stato impostato con successo un canale per il dispositivo.

Cos'è

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

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

C'è 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 si verificano 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 di Xcode mostrante l'opzione Dispositivi e Simulatori

Per raggiungere questo:

  • Collega il tuo dispositivo al tuo Mac e seleziona finestra > Dispositivi nel menu bar di Xcode.
  • Seleziona il tuo dispositivo nella panella di sinistra sotto la sezione Dispositivi.
  • Questo mostrerĂ  una lista degli app installate dai sviluppatori per quel dispositivo.
  • Seleziona l'app che desideri esaminare e poi seleziona l'icona dei 3 puntini vicino alla parte inferiore dello schermo.
  • Ecco dove puoi visualizzare il sistema di file corrente selezionando il download di una snapshot di esso.

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

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

File xcappdata scaricato con contesto menu Mostra contenuto del pacchetto.

Clicca con il tasto destro su questo file e seleziona Mostra contenuto del pacchetto 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 E' necessario dopo il riavvio dell'app

e documents/versions per il riscarica 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 della finestra per aprire l'Esplora file del dispositivo.
  • Seleziona un dispositivo dalla lista a discesa.
  • Apre il percorso "data/data/APP_NAME/" dove APP_NAME è il tuo ID dell'applicazione.

L'Esplora file del dispositivo di Android Studio che mostra il percorso del directory dei dati dell'applicazione

Poi Trova il versions cartella per vedere tutte le versioni

Se stai utilizzando Debugging per pianificare il lavoro di plugin nativo, connettilo con Usando @capgo/capacitor-aggiornatore per la capacitĂ  nativa in Usando @capgo/capacitor-aggiornatore, Directory dei Plugin di Capgo per il flusso di lavoro del prodotto in Directory dei Plugin di Capgo, Plugin di Capacitor sviluppati da Capgo per il dettaglio di implementazione in Plugin di Capacitor sviluppati da Capgo, Aggiungere o Aggiornare Plugin per il dettaglio di implementazione in Aggiungere o Aggiornare Plugin, e Alternative per Plugin Enterprise di Ionic per il flusso di lavoro del prodotto in Alternative per Plugin Enterprise di Ionic.