Saltare al contenuto

Debugging

GitHub

If you get a cloud refusal code e hai bisogno di walkthroughs di rimediazione piĂš approfonditi, vedi Problemi di Aggiornamento Comuni.

Capgo registri 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 della piattaforma. I registri piĂš vecchi possono ancora mostrare gli alias di camelCase legacy elencati tra parentesi.

Ogni titolo di sezione corrisponde all'azione code mostrata nella tabella dei registri 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. Gli aggiornamenti meno di quattro ore vecchi sono ignorati per evitare che il traffico dei bot venga considerato dispositivi fatturabili.

Cosa fare

Ignore questo su utenti reali. Riprova da reti e dispositivi normali o aspetta e controlla nuovamente piĂš tardi.

Cosa significa

La tua app è configurata per bloccare le richieste provenienti dalle aree IP note dei datacenter Google e Apple. La protezione si applica ai controlli di aggiornamento, 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 proveniente dal provider è intenzionale, disabilita temporaneamente Blocca le richieste dell'infrastruttura del provider nel pannello di Informazioni tab, quindi 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.

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 non si riavvierĂ  il ciclo di fatturazione e si resettano le prestazioni utilizzate.

Cosa fare

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

Cosa significa

Il dispositivo giĂ  dispone della versione piĂš recente del pacchetto disponibile per il suo canale. Si tratta di uno stato normale, non di un errore.

Cosa significa

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

Cosa fare

Smetti di chiamare le API di aggiornamento all'interno dei loop di rendering. Chiamale setChannel / getChannel solo dalle azioni degli utenti, e impostane defaultChannel in capacitor.config.

I rifiuti del backend causati da metadati di versione nativa non valide.

Cosa significa

La versione dell'app nativa nel config è mancante o non è valida semver (x.y.z).

Cosa fare

Impostare plugins.CapacitorUpdater.version a una semver valida, verificare in Testatore di SemVer, quindi ricostruisci e reinstalla l'app nativa.

Rifiuti di 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

Abilitare iOS nel canale se si trattava di un errore accidentale, o inviare i build di 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

Abilitare Android nel canale se si trattava di un errore accidentale, o inviare i build di 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 costrutti di Electron a un canale dedicato quando il blocco è intenzionale.

Cosa significa

Il dispositivo è un build 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 rilascio-solo e sposta i dispositivi di sviluppo altrove.

Cosa significa

Una costruzione di produzione chiamata /updatesma gli aggiornamenti di produzione sono bloccati per questo canale.

Cosa fare

Consenti gli aggiornamenti di produzione nel canale se si trattava di un errore accidentale, o invia le costruzioni 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 dei dispositivi reali se si trattava di un errore accidentale, o mantieni la restrizione e invia i dispositivi reali a un altro canale.

Cosa significa

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

Cosa fare

Abilita gli aggiornamenti dell'emulatore in un canale di test, o mantieni questo canale bloccato per l'emulatore e utilizza un altro canale per la validazione dell'emulatore.

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, metadatao none.

Cosa fare

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

Cosa significa

Il canale ha un bundle piĂš vecchio della linea di base del dispositivo e blocca l'invio degli 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 è sotto quel livello.

Cosa fare

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

Cosa significa

Il canale blocca gli scatti di versione maggiore, ad esempio 1.x.x a 2.x.x.

Cosa fare

Allinea la strategia del canale con il tuo piano di rilascio maggiore, o consenti gli scatti di versione maggiore per questo tracciato. Vedi Problemi di Aggiornamento Comuni.

Cosa significa

Il canale blocca gli scatti di versione minore rispetto al baseline nativo 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 salti minori per questo tracciato.

Cosa significa

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

Cosa fare

Allinea il ritmo di rilascio con la politica del canale, o consenti salti patch per questo tracciato.

Rifiuti del backend causati da configurazioni del canale mancanti o incompatibili.

Cosa significa

Il dispositivo ha provato ad associarsi a un canale privato che non consente l'assegnazione automatica 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

Riempi 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 una 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 bundle.

Cosa significa

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

Cosa fare

Ricarica il bundle, rigenera i manifesti e verifica le impostazioni di R2 o bundle pubblico.

Cosa significa

Il bundle assegnato al canale non contiene contenuto scaricabile: nessun external_url, nessun r2_path, non una versione integrata, e nessuna voci del manifesto.

Cosa fare

Ri-costruisci e ricarica la versione, quindi conferma che il bundle contiene contenuto file reale.

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 dispositivo e pacchetto nel console. Pubblica con la stessa chiave e versioni plugin corrispondenti CLI.

Rifiuti di 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

Smetti di inviare ID personalizzati, o abilita gli ID personalizzati solo quando il tuo workflow richiede che siano abilitati.

Cosa significa

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

Cosa fare

Eliminare o cancellare server.url per le versioni 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

Aggiornare il plugin e CLI a v5+ (preferibilmente 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 di statistiche.

Cosa significa

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

Cosa significa

Un bundle è stato attivato sul dispositivo.

Cosa significa

Un bundle non è riuscito ad attivarsi sul dispositivo.

Cosa fare

Controlla i log nativi con npx @capgo/cli@latest app debug e verifica l'integritĂ  del bundle, le percorrenze e notifyAppReady il flusso.

Cosa significa

Il dispositivo è stato resettato sul bundle di base.

Cosa significa

Una bundle è stata eliminata sul dispositivo.

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

Cosa significa

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

Cosa significa

È stata scaricata una nuova bundle — progresso indicato al 10%.

Cosa significa

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

Cosa significa

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

Cosa significa

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

Cosa significa

È stato scaricato un nuovo bundle — il 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%.

Cosa significa

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

Cosa significa

Il download del bundle è stato completato con successo.

Cosa significa

Il dispositivo ha iniziato a scaricare l'elenco delle manifestazioni di aggiornamento.

Cosa significa

Il dispositivo ha completato lo scarico dell'elenco delle manifestazioni di aggiornamento.

Cosa significa

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

Cosa significa

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

Cosa significa

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

Cosa fare

Risolve il problema dell'asset mancante o bloccato, rigenera il manifesto e ricarica il pacchetto.

Cosa significa

Un file del 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 di manifesto non è stato decompresso con Brotli.

Cosa fare

Verifica le impostazioni di compressione e ricarica gli asset interessati.

Cosa significa

Non è stato possibile scaricare il bundle.

Cosa fare

Controlla la connettivitĂ  di rete, l'orario di scadenza delle URL firmate, la raggiungibilitĂ  del CDN e lo spazio di archiviazione del dispositivo.

What significa

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

Cosa fare

Chiamare notifyAppReady() dopo che l'app ha completato l'avvio. notifyAppReady was not called, roll back current bundle maps to this code.

Sottosezione intitolata “checksum_fail”

The downloaded bundle failed checksum validation. Common causes: CRC32 vs SHA256 mismatch from an old CLI upload, or encryption key mismatch on older plugins that surface decryption failure as checksum failure.

La bundle scaricata ha fallito la verifica del checksum. Cause comuni: differenza tra CRC32 e SHA256 da un vecchio __CAPGO_KEEP_0__ caricato, o differenza chiave di crittografia su plugin piĂš vecchi che manifestano la fallita decrittazione come fallita verifica del checksum.

Cosa fare. Re-caricare 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 crittografia esplicita keyMismatch errori.

Cosa significa

Il bundle scaricato non è riuscito a decrittografarsi.

Cosa fare

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

Cosa significa

Il zip contiene percorsi Windows non validi.

Cosa fare

Ricompilare il bundle con percorsi Unix o sanificare i percorsi dell'archivio prima di caricarlo.

Cos'è

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

Cosa fare

Risolve la generazione del percorso dell'archivio prima dell'upload.

Cos'è

Il file zip contiene percorsi di directory non validi.

Cosa fare

Risolve la struttura dell'archivio prima dell'upload.

Cos'è

Il dispositivo non è riuscito ad estrarre il file zip scaricato.

Cosa fare

Verifica l'integritĂ  dell'archivio e le compressioni supportate.

Cosa significa

Il download è fallito perchÊ il dispositivo non aveva abbastanza memoria.

Cosa fare

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

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

Cosa significa

L'app è entrata in background.

Cos'è

L'app è entrata in primo piano.

Cos'è

Crash del layer JavaScript o Capacitor. I metadati possono includere messaggio, pila, 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 di esecuzione del code che fallisce.

Cos'è

Crash della piattaforma nativa. I metadati possono includere piattaforma, motivo, pila e dettagli del processo.

Cosa fare

Usa Xcode o Logcat per i log degli crash e correla con il bundle attivo dal metadata.

Cosa significa

L'evento di non risposta dell'applicazione Android.

Cosa fare

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

Cosa significa

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

Cosa fare

Riduci l'uso di memoria dopo l'attivazione degli aggiornamenti e ispeziona il metadata per i segnali di memoria disponibile.

Cos'è

L'Sistema operativo ha ucciso l'applicazione per l'uso eccessivo delle risorse.

Cosa fare

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

Cos'è

L'aggiornamento o l'avvio è fallito prima che la runtime normale fosse pronta.

Cosa fare

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

Cos'è

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 di origine, 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 fallimenti asincroni con errori di reporting JS e nativi.

Cosa significa

Un risorsa WebView non è riuscita a caricare.

Cosa fare

Utilizza l'URL di 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 dell'URI bloccato.

What significa

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

What fare

Correlare con gli eventi di crash e di errore di WebView prima e dopo il riavvio.

What significa

Il processo di rendering di WebView Android è uscito.

What fare

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

What significa

Il processo di contenuto di WebView iOS è stato terminato.

Cosa fare

Esegui l'ispezione del bundle attivo e dell'URL della pagina dal metadati.

Eventi di contesto dispositivo che aiutano a correlare il comportamento di aggiornamento con le modifiche OS, versione nativa o canale.

Cosa significa

La versione OS del dispositivo è cambiata tra le verifiche.

Cosa significa

La versione dell'applicazione nativa è cambiata, aiutando a separare le modifiche del bundle web da quelle native.

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 sono stati eliminati Capgo dati.

  • SUCCESS: installazione del pacchetto completata
  • ERROR: installazione o download fallito
  • PENDING: Scarica completato, rilascio in sospeso
  • DELETED: Bundle eliminato, ancora presentato per le statistiche
  • DOWNLOADING: Stiamo scaricando attualmente un bundle

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

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

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

trova i tuoi registri su Xcode

trova i tuoi registri 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 Xcode finestra mostrando l'opzione Dispositivi e Simulatori

Per ottenere questo:

  • Collega il tuo dispositivo al tuo Mac e seleziona finestra > Dispositivi nel menu bar Xcode.
  • Seleziona il tuo dispositivo nella parte sinistra del pannello sotto la sezione Dispositivi.
  • Ciò mostrerĂ  una lista delle app installate dai sviluppatori per quel dispositivo.
  • Seleziona l'app che desideri esaminare e seleziona quindi l'icona dei puntini 3 vicino alla parte inferiore dello schermo.
  • Ecco dove puoi visualizzare il sistema di file corrente selezionando scarica 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à un snapshot del sistema di file come un file .xcappdata che puoi esplorare.

File xcappdata scaricato con contesto menu Mostra contenuto del pacchetto

Fare clic destro su questo file e selezionare Mostra contenuto del pacchetto per aprire la cartella.

Apri la cartella App Data e dovresti vedere alcuni cartelle come Documenti, Libreria, tmp, ecc.

Struttura della cartella del contenitore dell'app di 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'app

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/APP_NAME/ dove APP_NAME è il tuo ID dell'applicazione.

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

Quindi trova il versions cartella per vedere tutte le versioni

Se stai utilizzando Debugging per pianificare il lavoro di plugin nativo, connettilo con Utilizzare @capgo/capacitor-aggiornatore per la capacitĂ  nativa in Utilizzare @capgo/capacitor-aggiornatore Capgo Directory dei plugin per il flusso di lavoro del prodotto nella directory dei plugin Capgo Capacitor plugin da Capgo per i dettagli di implementazione in Capacitor plugin da Capgo Aggiungere o aggiornare i plugin per i dettagli di implementazione in Aggiungere o aggiornare i plugin, e Alternative plugin Enterprise Ionic per il flusso di lavoro del prodotto in Alternative plugin Enterprise Ionic