Vai al contenuto

Log

La scheda App Log si apre Analisi dei log di default. Usa Insights per dare priorità a categorie, versioni e dispositivi per periodi di 1, 3, 7 o 30 giorni. Passa alla Log sottoscheda quando ti servono gli eventi del dispositivo, i filtri e i timestamp descritti di seguito.

La sottoscheda Logs fornisce una cronologia dettagliata degli eventi di aggiornamento e informazioni diagnostiche per la tua applicazione. È utile per confermare le prove a livello di dispositivo dietro un Insight, risolvere problemi in un percorso di aggiornamento e capire come i dispositivi interagiscono con Capgo. Apri un'app, seleziona Log, quindi scegli la Log sottoscheda.

Panoramica della scheda Raw Logs con l'interfaccia principale
Scheda Raw Logs

L'interfaccia Raw Logs include:

  1. Sottoscheda Logs — il controllo di navigazione per le singole righe di log.
  2. Pulsante Reload — aggiorna la lista dei log con gli ultimi dati.
  3. Filtri per intervallo di tempo e azione — filtra lo stream degli eventi per tempo e azione.

Ogni riga mostra:

  • Timestamp (UTC)
  • ID dispositivo
  • Azione code (cosa è successo)
  • Nome versione (bundle o builtin)

Click a row to jump to the device detail page for its full history.

Puoi filtrare i log per un periodo specifico usando il date picker:

Selettore dell'intervallo di date per filtrare i log
Filtro per intervallo di date
  1. Preset rapidi - Seleziona intervalli comuni: ultime 1h, 3h, 6h o 12h
  2. Ora di inizio - Imposta un orario di inizio personalizzato
  3. Ora di fine - Imposta un orario di fine personalizzato
  4. Calendario - Seleziona date specifiche tramite la vista calendario

Clicca su “Select” per applicare l'intervallo scelto, o su “Cancel” per chiudere il picker.

Il menu a discesa Actions ti permette di filtrare i log per tipo di evento:

Menu a discesa per filtrare i log in base al tipo di azione
Filtro Actions

I filtri per azione disponibili sono:

  • Heartbeat del dispositivo - Check periodici dello stato dei dispositivi
  • Richiesta di eliminazione versione - Quando una versione del bundle viene eliminata
  • Reset alla versione predefinita - Quando un dispositivo torna al bundle integrato
  • Versione installata con successo - Installazione del bundle riuscita
  • Nuova versione inviata al dispositivo - Quando Capgo invia un aggiornamento a un dispositivo
  • Installazione della versione fallita - Quando l'installazione del bundle fallisce

Usa la barra di ricerca in alto per trovare rapidamente tipi di azione specifici. Puoi selezionare più azioni per mostrare i log corrispondenti a uno qualsiasi dei tipi scelti.

Ora (UTC)ID dispositivoAzioneVersioneCosa ti dice
2025-01-14 10:00:01A1B2C3get2.4.1Il device ha chiesto a Capgo se è disponibile un aggiornamento
2025-01-14 10:00:03A1B2C3download_manifest_start2.4.1Download delta avviato; SDK sta per scaricare i file delta modificati
2025-01-14 10:00:07A1B2C3download_402.4.1Download del bundle completato al 40%
2025-01-14 10:00:12A1B2C3download_zip_complete2.4.1Download dello zip terminato
2025-01-14 10:00:13A1B2C3set2.4.1Bundle installato e impostato come prossimo da eseguire
2025-01-14 10:05:00B9C8D7disableAutoUpdateToMajor1.9.0Channel policy blocked a jump to 2.x
2025-01-14 10:05:05B9C8D7rateLimitedintegrataLimite di richieste raggiunto dal dispositivo; SDK attende il riavvio

Per aiutarti a interpretare i log, ecco alcuni esempi che mostrano i percorsi reali di aggiornamento dei dispositivi:

Ecco come appare un aggiornamento andato a buon fine nei tuoi log:

OraID dispositivoAzioneVersioneCosa significa
10:00:01a1b2c3d4get1.2.0Dispositivo controllato per aggiornamenti, ricevute info versione 1.2.0
10:00:02a1b2c3d4download_101.2.0Download avviato, completato al 10%
10:00:03a1b2c3d4download_501.2.0Download al 50%
10:00:05a1b2c3d4download_complete1.2.0Download completato con successo
10:00:06a1b2c3d4set1.2.0Bundle installato e attivato

Quando un dispositivo effettua il controllo ma ha già l'ultima versione:

OraID dispositivoAzioneVersioneCosa significa
14:30:00e5f6g7h8noNew1.2.0Il dispositivo è già all'ultima versione, nessun aggiornamento necessario

When an update fails and the device rolls back:

OraID dispositivoAzioneVersioneCosa significa
11:15:00i9j0k1l2get1.3.0Il dispositivo ha ricevuto le info dell'update
11:15:02i9j0k1l2download_complete1.3.0Download completato
11:15:03i9j0k1l2set1.3.0Bundle impostato
11:15:10i9j0k1l2update_fail1.3.0L'app è andata in crash o notifyAppReady() non è stata chiamata - rollback avviato
11:15:11i9j0k1l2resetintegrataIl dispositivo è tornato alla versione integrata

Azione richiesta: Verifica che la tua app chiami notifyAppReady() dopo l'inizializzazione riuscita. Vedi la documentazione del plugin per i dettagli.

Quando i problemi di rete impediscono il download:

OraID dispositivoAzioneVersioneCosa significa
09:45:00m3n4o5p6get1.2.0Il dispositivo ha ricevuto le info dell'update
09:45:01m3n4o5p6download_301.2.0Download avviato ma...
09:45:15m3n4o5p6download_fail1.2.0Download fallito (timeout di rete, connessione persa, ecc.)

Azione richiesta: Il dispositivo riproverà automaticamente al prossimo avvio dell'app. Nessuna azione necessaria, a meno che non accada spesso.

Quando il tuo account raggiunge il limite di dispositivi:

OraID dispositivoAzioneVersioneCosa significa
16:00:00q7r8s9t0needPlanUpgrade-Questo dispositivo non riceverà aggiornamenti finché non effettuerai l'upgrade o non scadrà il ciclo di fatturazione

Azione richiesta: Passa a un piano superiore o attendi il prossimo ciclo di fatturazione.

Configurazione del canale che blocca gli aggiornamenti

Sezione: “Configurazione del canale che blocca gli update”

Quando le impostazioni del canale impediscono un update:

OraID dispositivoAzioneVersioneCosa significa
12:00:00u1v2w3x4disableAutoUpdateToMajor2.0.0Il dispositivo su v1.x non può aggiornarsi a v2.x (salto di major version bloccato)
12:05:00y5z6a7b8disableEmulator1.2.0Emulatore rilevato e il canale blocca gli emulatori
12:10:00c9d0e1f2disableDevBuild1.2.0Build di sviluppo rilevata e il canale blocca le build dev

Azione richiesta: Si tratta di protezioni intenzionali. Se vuoi consentire questi update, modifica il tuo impostazioni canale.

Questi codici provengono dall' stats_action enum usato dalla dashboard API (capgo/src/types/supabase.types.ts). Se vedi un nuovo code nella UI, è stato emesso da SDK o dal backend e validato in base a questa lista.

Happy path & ciclo di vita

Code(s)Significato
getIl dispositivo ha richiesto a Capgo il bundle associato al suo canale
download_manifest_start, download_manifest_completeDownload delta iniziato / terminato (per bundle caricati con file delta)
download_zip_start, download_zip_completeDownload archivio Zip iniziato / terminato
download_10 … download_90Milestone del download
download_0Indicatore 0% per il primo evento di avanzamento
download_completeBundle scaricato interamente
setBundle pronto per il prossimo avvio
resetDispositivo tornato al bundle integrato
deleteBundle rimosso dallo storage locale
uninstallRilevata disinstallazione app
app_moved_to_foreground, app_moved_to_backgroundEventi lifecycle app registrati da SDK
pingHealth check/heartbeat dal dispositivo
setChannel, getChannelChannel sovrascritto o recuperato tramite chiamata SDK
CodePerché accadeCosa fare ora
invalidIpCapgo ha rilevato traffico sospetto (IP di Google o infrastrutture cloud).Ignora se riguarda utenti reali; riprova da dispositivi fisici e reti normali, o controlla più tardi.
needPlanUpgradeOrganization reached plan/device limit.Aggiorna il piano nella dashboard o attendi il prossimo ciclo di fatturazione.
semver_errorLa versione dell'app nativa nella config è mancante o non è un semver valido (x.y.z).Imposta plugins.CapacitorUpdater.version usa un semver valido, quindi verifica nella Tester SemVer e ricostruisci l'app.
disablePlatformIosiOS è disabilitato nella policy del canale.Se è successo per errore, abilita iOS in quel canale e ripubblica il routing. Se invece blocchi iOS di proposito in questo track, lascialo disabilitato e sposta le build iOS su un canale separato.
disablePlatformAndroidAndroid è disabilitato nella policy del canale.Se è successo per errore, abilita Android in quel canale e ripubblica il routing. Se invece blocchi Android di proposito in questo track, lascialo disabilitato e sposta le build Android su un canale separato.
disableAutoUpdateLa modalità auto-update del canale blocca questo tipo di update.Modifica la policy di auto-update del canale (major/minor/patch/metadata/none) per consentire il rollout desiderato.
disableAutoUpdateUnderNativeIl canale è impostato per bloccare gli update precedenti alla baseline del dispositivo.Pubblica una versione pari o superiore alla baseline nativa, oppure disabilita la protezione sulle versioni native precedenti.
disableAutoUpdateMetadataIl canale richiede min_update_version metadata e l'app è più vecchia.Imposta min_update_version per il bundle o la release target da una versione nativa più recente.
disableAutoUpdateToMajorIl canale blocca i salti di major version.Mantieni le major version nella stessa strategia del canale, oppure permetti i salti per questo track.
disableAutoUpdateToMinorIl canale blocca i salti di minor version.Mantieni le minor version nella stessa strategia del canale, oppure permetti i salti per questo track.
disableAutoUpdateToPatchIl canale blocca i salti di patch-level per questo flusso.Allinea la cadenza dei rilasci o abilita i salti di patch nella policy del canale per questo track.
disableEmulatorGli aggiornamenti per emulator non sono consentiti per questo canale.Se è un errore, abilita gli aggiornamenti per emulator in un canale di test per la validazione. Se è intenzionale, mantieni questo canale bloccato per gli emulator e usa un altro canale per le build degli emulator.
disableDevBuildLe build di dev sono bloccate per questo canale.Se è un errore, abilita gli aggiornamenti di dev o sposta il dispositivo su un canale abilitato per dev. Se è intenzionale, mantieni questo canale limitato solo alle build di release.
disableProdBuildUna build del dispositivo in modalità production chiamata /updates, mentre il tuo canale l'ha bloccata.Se è stato un errore, abilita gli update in produzione su quel channel e ripubblica. Se è intenzionale, mantieni la restrizione e invia i build di produzione al channel corretto.
cannotGetBundleCapgo non è riuscito a generare un URL di download valido per il bundle selezionato.Carica nuovamente il bundle (con --delta se desideri i file delta) e controlla le impostazioni di R2/public bundle.
cannotUpdateViaPrivateChannelL'app ha tentato di passare a un channel privato che non permette l'auto-assegnazione.Abilita allow_device_self_set sul channel o passa a un channel pubblico/consentito.
channelMisconfiguredLa regola di auto-update del channel manca di dati necessari (version_number senza min_update_version).Completa la configurazione mancante per quella regola o passa a una modalità di auto-update più semplice.
missingBundleIl bundle non ha un payload scaricabile (mancano external_url/r2_path e i file delta).Ricrea/ri-carica la versione e verifica che il bundle contenga file reali.
NoChannelOrOverrideNessun canale corrisponde a questo dispositivo (nessun default cloud + nessun fallback config + nessun override).Imposta un canale di default nella dashboard o mantieni un test defaultChannel in quella build.
rateLimitedTroppe chiamate a update/channel in breve tempo (spesso in un render-loop) setChannel/getChannel).Smetti di chiamarle nel render. Chiamale solo su azione dell'utente. Usa defaultChannel nella capacitor.config.
keyMismatchGli ID della chiave di cifratura dell'app e del bundle differiscono (device_key_id vs bundle_key_id).Nella console, confronta gli ID delle chiavi di dispositivo e bundle. Se differiscono, pubblica con la stessa chiave e la versione CLI/plugin corrispondente; la codifica della chiave può variare tra le versioni.
disableDeviceUn telefono/tablet reale è stato bloccato perché questo canale è impostato per bloccare i dispositivi reali.Se accidentale, abilita gli update per dispositivi reali in quel canale. Se intenzionale, mantieni il blocco e instrada i dispositivi reali su un altro canale.
disablePlatformElectronElectron è bloccato in questo canale.Se è un errore, abilita Electron in questo canale e ripubblica il routing. Se è intenzionale, mantienilo bloccato e reindirizza gli utenti Electron a un canale dedicato.
customIdBlockedÈ stato inviato un device ID personalizzato, ma questa app non accetta ID custom.Disabilita l'invio di ID personalizzati o abilita gli ID custom solo se richiesto dal tuo workflow.
blocked_by_server_urlL'app ha server.url configurato, quindi Capacitor serve l'URL remoto invece dei file locali.Rimuovi/pulisci server.url per le build di produzione e mantieni i payload degli update locali.
backend_refusalL'updater è v4, che non è più accettato dal backend.Aggiorna il plugin/CLI a v5+ (preferisci v8), con Capacitor v5+, quindi ricostruisci e ripubblica i metadati del bundle.
Blocchi di configurazione o policy
Code(s)Perché l'update è stato bloccato
disableAutoUpdate, disableAutoUpdateToMajor, disableAutoUpdateToMinor, disableAutoUpdateToPatch, disableAutoUpdateMetadata, disableAutoUpdateUnderNativeLa strategia del channel lo vieta salto semver
disablePlatformIos, disablePlatformAndroidLa piattaforma è disabilitata sul channel
disableDevBuild, disableEmulatorBuild di dev o emulatori non consentiti
disableProdBuild, disableDevice, disablePlatformElectronBuild di produzione, dispositivi reali o Electron sono bloccati per questo channel.
customIdBlockedI device ID personalizzati non sono accettati per questa app.
cannotUpdateViaPrivateChannel, NoChannelOrOverride, channelMisconfiguredSelezione o override del channel fallito
missingBundle, cannotGetBundleIl canale punta a un bundle che Capgo non può servire
needPlanUpgradeL'organizzazione ha raggiunto il limite del piano/dispositivo

Errori di download / integrità / installazione

Code(s)Significato
download_failDownload del bundle fallito (errore di rete o di risposta)
download_manifest_file_fail, download_manifest_checksum_fail, download_manifest_brotli_failImpossibile recuperare o validare un file delta
checksum_fail, checksum_requiredControllo integrità fallito o checksum mancante
unzip_fail, directory_path_fail, canonical_path_fail, windows_path_failValidazione del file system o dell'unzip fallita
decrypt_failDecrittazione fallita (bundle criptato)
update_failBundle installato ma l'app non è stata chiamata notifyAppReady(); rollback attivato
download_zip_* senza successivi setDownload completato ma la fase di installazione non è mai terminata
Code(s)Significato
app_crash, app_crash_nativeEventi di crash dai layer JavaScript o native. I metadati includono spesso stack, sorgente e info sulla versione attiva.
app_anrAndroid ha segnalato un Application Not Responding.
app_killed_low_memory, app_killed_excessive_resource_usageTerminazione del processo dell'app per limiti di memoria o risorse.
app_initialization_failure, app_memory_warningL'avvio è stato interrotto o è stata rilevata pressione sulla memoria prima del runtime normale.
webview_javascript_error, webview_unhandled_rejection, webview_resource_error, webview_security_policy_violation, webview_unclean_restart, webview_render_process_gone, webview_content_process_terminatedCiclo di vita WebView ed errori JS/rendering. Installa Sentry sia nei layer JS che native per catturare stack trace, contesto sessione/device e URL/stato per fix più rapidi.
os_version_changed, native_app_version_changedVersione OS o app nativa cambiata; aiuta a distinguere gli effetti del rollout a livello di piattaforma dal comportamento del web bundle.

➡️ Ti serve una guida code più approfondita? Vedi Riferimento completo ai log Code e guida al debugging.

Se clicchi su una specifica voce di log, verrai solitamente indirizzato alla pagina del dispositivo. Questo ti permette di vedere la cronologia completa di quel dispositivo, utile per diagnosticare problemi specifici o analizzare il suo percorso di aggiornamento.

Se stai usando Log per pianificare le operazioni della dashboard e di API, collegalo a Panoramica API per i dettagli di implementazione in Panoramica di API, Introduzione per i dettagli di implementazione in Introduzione, Chiavi API per i dettagli di implementazione delle chiavi API, Dispositivi per i dettagli di implementazione in Devices, e Bundle per il dettaglio di implementazione in Bundles.