Saltare al contenuto

Log

The Logs page provides a detailed history of update events and diagnostic information for your application. This is crucial for monitoring the update process, troubleshooting issues, and understanding how your devices interact with Capgo. You can access it by Cliccando sul tuo app E poi Cliccando sul pulsante “Logs” (precedentemente denominato “aggiornamenti” in alcune vecchie schermate o documentazione).

Dal lì dovresti vedere una pagina simile a questa, che mostra una lista di voci di registro:

Pagina di registrazione riassuntiva mostrando l'interfaccia principale
Pagina di registrazione riassuntiva

L'interfaccia della pagina di registrazione include:

  1. Tabella dei registri - La scheda di navigazione per accedere alla visualizzazione dei registri
  2. Pulsante di ricarica - Aggiorna la lista dei registri con i dati più recenti
  3. Intervallo di tempo & Filtri di azione - Filtra i log per intervallo di data e tipo di azione (vedi le sezioni sottostanti)

Ogni riga mostra:

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

Clicca su una riga per saltare alla pagina dei dettagli del dispositivo per la storia completa.

Puoi filtrare i log per un periodo di tempo specifico utilizzando il calendario:

Calendario per filtrare i log
Filtra per Intervallo di Data
  1. Impostazioni veloci - Seleziona intervalli di tempo comuni: Ultimi 1h, 3h, 6h o 12h
  2. Ora di Inizio - Imposta un'ora di inizio personalizzata per l'intervallo
  3. Ora di Fine - Imposta un'ora di fine personalizzata per l'intervallo
  4. Calendario - Scegli date specifiche utilizzando la vista del calendario

Seleziona 'Select' per applicare la tua scelta di intervallo di date, o 'Cancel' per annullare il picker.

Il menu a discesa 'Azioni' ti consente di filtrare i log per tipi di eventi specifici:

Menu a discesa per filtrare i log per tipo di evento
Filtro per Azioni

Il filtro per azioni disponibili includono:

  • Battezzamento del dispositivo - Verifiche di salute periodiche dai dispositivi
  • Richiesta di cancellazione della versione - Quando una versione del pacchetto viene cancellata
  • Resetta alla versione predefinita - Quando un dispositivo torna alla bundle predefinita
  • Versione installata con successo - Installazione bundle riuscita
  • Nuova versione inviata al dispositivo - Quando Capgo invia un aggiornamento a un dispositivo
  • Installazione versione fallita - Quando l'installazione bundle fallisce

Utilizza la casella di ricerca in alto per trovare velocemente i tipi di azione specifici. Puoi selezionare più azioni per visualizzare i log che corrispondono a qualsiasi dei tipi selezionati.

Ora (UTC)ID dispositivoAzioneVersioneCosa ti dice
2025-01-14 10:00:01A1B2C3get2.4.1Il dispositivo ha chiesto a Capgo se è disponibile un aggiornamento
2025-01-14 10:00:03A1B2C3download_manifest_start2.4.1E' partito il recupero del manifesto; SDK sta per scaricare file
2025-01-14 10:00:07A1B2C3download_402.4.1La download del bundle è al 40%
2025-01-14 10:00:12A1B2C3download_zip_complete2.4.1Zip scaricato
2025-01-14 10:00:13A1B2C3set2.4.1Il bundle è stato installato e contrassegnato come prossimo da eseguire
2025-01-14 10:05:00B9C8D7disableAutoUpdateToMajor1.9.0La politica del canale ha bloccato un salto a 2.x
2025-01-14 10:05:05B9C8D7rateLimitedintegratoIl dispositivo ha raggiunto il limite delle richieste; SDK si ferma fino al riavvio

Per aiutarti a capire cosa i registri ti dicono, ecco sequenze di esempio che mostrano viaggi di aggiornamento reali del dispositivo:

Questo è come dovrebbe apparire un aggiornamento sano nei tuoi registri:

TempoID dispositivoAzioneVersioneCosa significa
10:00:01a1b2c3d4get1.2.0Il dispositivo ha controllato gli aggiornamenti e ha ricevuto la versione 1.2.0 info
10:00:02a1b2c3d4download_101.2.0L'aggiornamento è iniziato, 10% completato
10:00:03a1b2c3d4download_501.2.0Download a 50%
10:00:05a1b2c3d4download_complete1.2.0Download completato con successo
10:00:06a1b2c3d4set1.2.0Bundle installato e attivato

Quando un dispositivo controlla ma già ha la versione più recente:

TempoID dispositivoAzioneVersioneCosa significa
14:30:00e5f6g7h8noNew1.2.0Il dispositivo è già sulla versione più recente, non è necessario un aggiornamento

Quando un aggiornamento fallisce e il dispositivo torna indietro:

TempoID dispositivoAzioneVersioneCosa significa
11:15:00i9j0k1l2get1.3.0Dispositivo riceve informazioni sull'aggiornamento
11:15:02i9j0k1l2download_complete1.3.0Download completato
11:15:03i9j0k1l2set1.3.0Bundle impostato
11:15:10i9j0k1l2update_fail1.3.0L'app è crashata o notifyAppReady() non era chiamato - è stato attivato il rollback
11:15:11i9j0k1l2resetintegratoIl dispositivo è stato ripristinato alla versione integrata

Azioni necessarieVerifica che la tua app chiami notifyAppReady() dopo l'inizializzazione riuscita. Vedi la documentazione del plugin per i dettagli.

Quando problemi di rete impediscono il download:

TempoID dispositivoAzioneVersioneCosa significa
09:45:00m3n4o5p6get1.2.0Il dispositivo ha ricevuto informazioni di aggiornamento
09:45:01m3n4o5p6download_301.2.0È iniziata la download, ma…
09:45:15m3n4o5p6download_fail1.2.0Download fallito (timeout di rete, connessione persa, ecc.)

Azioni necessarie: Il dispositivo si riproverà automaticamente alla prossima avviamento dell'applicazione. Nessuna azione richiesta a meno che ciò non accada frequentemente.

Quando il tuo account raggiunge il limite dei dispositivi:

TempoID dispositivoAzioneVersioneCosa significa
16:00:00q7r8s9t0needPlanUpgrade-Questo dispositivo non riceverà aggiornamenti fino a quando non aggiorni o il ciclo di fatturazione si riavvia

Azione necessaria: Aggiorna il tuo piano o aspetta il prossimo ciclo di fatturazione.

When impostazioni del canale impediscono un aggiornamento:

TempoID dispositivoAzioneVersioneCosa significa
12:00:00u1v2w3x4disableAutoUpdateToMajor2.0.0I dispositivi su v1.x non possono aggiornarsi automaticamente a v2.x (salto di versione maggiore bloccato)
12:05:00y5z6a7b8disableEmulator1.2.0Rilevato emulatore, e il canale blocca gli emulatori
12:10:00c9d0e1f2disableDevBuild1.2.0Rilevato build di sviluppo, e il canale blocca i build di sviluppo

Azione necessariaQueste sono protezioni intenzionali. Se vuoi consentire queste aggiornamenti, modifica le impostazioni del tuo canale.

Questi codici provengono dall' stats_action enum utilizzato dal dashboard API (capgo/src/types/supabase.types.ts). Se vedete un nuovo code nella UI, è stato emesso dal SDK o backend e validato contro questa lista.

Happy path & lifecycle

Code(s)Significato
getIl dispositivo ha chiesto a Capgo il manifesto del canale corrente
download_manifest_start, download_manifest_completeIniziato o completato il download del manifesto (per delta o bundle multi-file)
download_zip_start, download_zip_completeIniziato o completato il download di un archivio ZIP
download_10download_90Migliaia di progresso del download
download_0Marcatore di progresso del 0% per il primo evento di progresso
download_completeTutto il bundle scaricato
setIl bundle è pronto per il prossimo avvio
resetIl dispositivo è stato ripristinato con il bundle predefinito
deleteIl bundle è stato rimosso dalla cache locale
uninstallÈ stato rilevato l'installazione dell'app
app_moved_to_foreground, app_moved_to_backgroundGli eventi di ciclo di vita dell'app sono stati registrati da SDK
pingVerifica di salute/heartbeat dal dispositivo
setChannel, getChannelIl canale è stato sovrascritto o recuperato tramite SDK

Nuova soluzione rapida per policy-block / throttle

Sezione intitolata “Nuova soluzione rapida per policy-block / throttle”
CodePerché ciò accadeCosa fare successivamente
invalidIpCapgo è stato rilevato traffico che sembra essere di tipo bot (indirizzi IP di Google/infrastruttura cloud).Ignorare su utenti reali; riprovare da dispositivi reali e reti normali, o controllare dopo un po' di tempo.
needPlanUpgradeL'organizzazione ha raggiunto il limite di piano/dispositivo.Aggiornare il piano nel pannello di controllo o attendere il prossimo ciclo di fatturazione.
semver_errorLa versione dell'app nativa nella configurazione manca o non è valida (x.y.z).Impostare plugins.CapacitorUpdater.version a una versione semver valida, quindi verificare che sia valida nel Tester di SemVer e ricostruire l'app.
disablePlatformIosL'iOS è disabilitato nella politica del canale.Se si è trattato di un errore, abilitare l'iOS in quel canale e ripubblicare la routing. Se si è intenzionalmente bloccato l'iOS in quel tracciato, lascialo spento e spostare i build iOS in un canale separato.
disablePlatformAndroidL'Android è disabilitato nella politica del canale.Se si trattava di un errore, abilita l'Android in quel canale e ripubblica la routing. Se hai intenzionalmente bloccato l'Android in questo tracciato, lascialo spento e sposta i build di Android in un canale separato.
disableAutoUpdateIl canale auto-aggiornamento blocca questo tipo di aggiornamento.Cambia la politica di aggiornamento del canale (major/minor/patch/metadata/none) per consentire il tuo intento di distribuzione.
disableAutoUpdateUnderNativeIl canale è impostato per bloccare gli aggiornamenti più vecchi del baseline del dispositivo.Inserisci una versione a o sopra del baseline nativo, o disabilita quella protezione sotto-nativa.
disableAutoUpdateMetadataIl canale richiede min_update_version metadati e l'app è più vecchia.Imposta min_update_version per il bundle o rilascio di destinazione da una versione nativa più recente.
disableAutoUpdateToMajorIl canale blocca i salti di versione maggiore.Mantieni le versioni maggiori nella stessa strategia del canale, o consenti i salti maggiori per questo tracciato.
disableAutoUpdateToMinorThe canali bloccano gli scambi di versione minore.Conserva le versioni minori nella stessa strategia del canale, o consenti gli scambi minori per questo tracciato.
disableAutoUpdateToPatchIl canale blocca gli scambi di livello patch per questo flusso.Allinea il tuo calendario di rilascio, o apri gli scambi patch nel canale di politica per questo tracciato.
disableEmulatorAggiornamenti emulator non sono consentiti per questo canale.Se questo era accidentale, attiva gli aggiornamenti emulator in un canale di test dove si validano gli emulator. Se intenzionale, mantieni questo canale bloccato agli emulator e utilizza un altro canale per gli aggiornamenti degli emulator.
disableDevBuildGli aggiornamenti di build dev sono bloccati per questo canale.Se questo era accidentale, consenti gli aggiornamenti dev o sposta questo dispositivo in un canale abilitato per dev. Se è intenzionale, mantieni questo canale bloccato ai soli rilasci.
disableProdBuildUn build di dispositivo in modalità di produzione chiamato /updates, mentre il tuo canale lo bloccava.Se questo era accidentale, consenti gli aggiornamenti di produzione in quel canale e ripubblica. Se è intenzionale, mantieni la restrizione e invia i build di produzione al canale/build corretto.
cannotGetBundleCapgo non è stato in grado di costruire una URL di download valida per il bundle selezionato.Ricarica il bundle o rigenera i manifest e controlla le impostazioni del bundle R2/public.
cannotUpdateViaPrivateChannelL'app ha tentato di passare automaticamente a un canale privato che non consente l'assegnazione automatica.Abilita allow_device_self_set sul canale o passa a un canale pubblico/consentito.
channelMisconfiguredLa regola di aggiornamento automatico del canale manca di dati richiesti (version_number senza min_update_version).Riempi la configurazione mancante per quella regola o passa a un modo di aggiornamento automatico più semplice.
missingBundleIl bundle non ha un payload scaricabile (mancante external_url/r2_path e nessun manifesto).Ri-costruisci/ri-carica la versione e verificare che il bundle abbia contenuto di file reale.
NoChannelOrOverrideNon è stato trovato alcun canale corrispondente a questo dispositivo (nessuna impostazione cloud predefinita + nessuna configurazione di fallback + nessuna sovrascrittura).Imposta un canale predefinito nel pannello di controllo o continua a testare defaultChannel In quel build.
rateLimitedTroppi aggiornamenti/chiamate di canale in un breve periodo (di solito loop di rendering setChannel/getChannel).Smettere di chiamare in rendering. Chiamare solo su azione dell'utente. Utilizzare defaultChannel In capacitor.config.
keyMismatchIl ID delle chiavi di crittografia dell'app e del pacchetto sono diversi (device_key_id vs bundle_key_id).In console, confrontare ID delle chiavi di dispositivo e pacchetto. Se sono diversi, pubblicare con la stessa chiave e versione del plugin CLI corrispondente; l'encoding della chiave può differire tra le versioni.
disableDeviceUn dispositivo reale è stato bloccato perché questo canale è impostato per bloccare i dispositivi reali.Se è stato fatto per errore, attivare le aggiornamenti dei dispositivi reali in quel canale. Se è stato fatto intenzionalmente, mantenerlo bloccato e inviare i dispositivi reali a un altro canale.
disablePlatformElectronL'elettronica è bloccata in questo canale.Se è stato fatto per errore, abilitare l'elettronica in quel canale e ripubblicare la routing. Se è stato fatto intenzionalmente, mantenerlo bloccato e inviare gli utenti di elettronica a un canale dedicato.
customIdBlockedÈ stato inviato un ID di dispositivo personalizzato, ma questa app non accetta gli ID personalizzati.Disabilita l'invio di ID personalizzati o abilita gli ID personalizzati solo se il tuo workflow lo richiede.
blocked_by_server_urlL'applicazione ha server.url configurato, quindi Capacitor serve URL remoto al posto di file locali.Rimuovi/cancella server.url per le build di produzione e mantieni i payload di aggiornamento locali.
backend_refusalL'aggiornatore è v4, che il backend non accetta più.Aggiorna plugin/CLI a v5+ (preferisci v8), con Capacitor v5+, ricostruisci e ripubblica i metadati del bundle.
Blocchi di configurazione o politiche
Code(s)Perché l'aggiornamento è stato bloccato
disableAutoUpdate, disableAutoUpdateToMajor, disableAutoUpdateToMinor, disableAutoUpdateToPatch, disableAutoUpdateMetadata, disableAutoUpdateUnderNativeLa strategia del canale vieta questo salto semver
disablePlatformIos, disablePlatformAndroidLa piattaforma è disabilitata sul canale
disableDevBuild, disableEmulatorI costrutti di sviluppo o gli emulatori non sono consentiti
disableProdBuild, disableDevice, disablePlatformElectronI costrutti di produzione, dispositivi reali o Electron sono bloccati per questo canale
customIdBlockedI dispositivi ID personalizzati non sono accettati per questa app
cannotUpdateViaPrivateChannel, NoChannelOrOverride, channelMisconfiguredLa selezione o sovrascrittura del canale è fallita
missingBundle, cannotGetBundleIl manifesto si riferisce a un bundle Capgo non può servire
needPlanUpgradeL'org ha raggiunto il limite del piano/dispositivo
rateLimitedTroppi richieste; SDK limita fino al riavvio
blocked_by_server_url, backend_refusal, invalidIpLa regola del server ha bloccato la richiesta

Fallimenti di download / integrità / installazione

Code(s)Significato
download_failFallito il download del bundle (errore di rete o risposta)
download_manifest_file_fail, download_manifest_checksum_fail, download_manifest_brotli_failNon è stato possibile recuperare o validare il file di manifesto
checksum_fail, checksum_requiredLa verifica dell'integrità è fallita o manca il checksum
unzip_fail, directory_path_fail, canonical_path_fail, windows_path_failLa validazione del file system o dello scompattamento è fallita
decrypt_failLa decrittazione è fallita (bundle crittografato)
update_failIl bundle è stato installato ma l'app non l'ha mai chiamato notifyAppReady()Esecuzione del rollback attivata
download_zip_* senza ulteriori setDownload completato ma fase di installazione mai completata
Code(s)Significato
app_crash, app_crash_nativeEventi di crash da layer runtime o nativo JavaScript. I metadati includono spesso stack, sorgente e informazioni sulla versione attiva.
app_anrL'applicazione Android ha segnalato un Application Not Responding.
app_killed_low_memory, app_killed_excessive_resource_usageL'applicazione è stata terminata a causa di limiti di memoria o risorse.
app_initialization_failure, app_memory_warningL'avvio dell'applicazione è stato interrotto o è stata osservata una pressione di 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_terminatedErrori di ciclo di vita del WebView e di rendering JavaScript. Installa Sentry in entrambi i layer JavaScript e nativi per catturare tracce di stack, contesto di sessione/dispositivo e URL/stato per risolvere più velocemente i problemi.
os_version_changed, native_app_version_changedÈ cambiata la versione dell'applicazione nativa o del sistema operativo; ciò aiuta a separare gli effetti di rollout a livello di piattaforma dai comportamenti del pacchetto web.

➡️ Hai bisogno di ulteriori indicazioni per il tuo code? Vedi Guida di Riferimento e di Debug per il Registro Completo Code.

Se clicchi su un’entry di registro specifica, ti porterà tipicamente alla pagina del dispositivo. Ciò ti consente di vedere la storia completa per quel dispositivo in particolare, il che può essere molto utile per diagnosticare problemi specifici del dispositivo o comprendere il suo percorso di aggiornamento.

Se stai utilizzando Registro per pianificare dashboard e API operazioni, connettilo con API Panoramica per i dettagli di implementazione in API Overview, Introduzione per i dettagli di implementazione in Introduzione, API Chiavi per i dettagli di implementazione in API Chiavi, Dispositivi per i dettagli di implementazione in Dispositivi, e Bundle per i dettagli di implementazione in Bundle.