Log
Copiare un prompt di configurazione con i passaggi di installazione e la guida markdown completa per questo plugin.
Capire i Log dell'Applicazione
Sezione intitolata “Capire i Log dell'Applicazione”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:

L'interfaccia della pagina di registrazione include:
- Tabella dei registri - La scheda di navigazione per accedere alla visualizzazione dei registri
- Pulsante di ricarica - Aggiorna la lista dei registri con i dati più recenti
- 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.
Filtra per Intervallo di data
Sezione intitolata “Filtra per Intervallo di Data”Puoi filtrare i log per un periodo di tempo specifico utilizzando il calendario:

- Impostazioni veloci - Seleziona intervalli di tempo comuni: Ultimi 1h, 3h, 6h o 12h
- Ora di Inizio - Imposta un'ora di inizio personalizzata per l'intervallo
- Ora di Fine - Imposta un'ora di fine personalizzata per l'intervallo
- 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.
Filtra per Tipo di Azione
Sottosezione intitolata “Filtra per Tipo di Azione”Il menu a discesa 'Azioni' ti consente di filtrare i log per tipi di eventi specifici:

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.
Esempio di frammento di log (dati fittizi)
Sottosezione intitolata “Esempio di frammento di log (dati fittizi)”| Ora (UTC) | ID dispositivo | Azione | Versione | Cosa ti dice |
|---|---|---|---|---|
| 2025-01-14 10:00:01 | A1B2C3 | get | 2.4.1 | Il dispositivo ha chiesto a Capgo se è disponibile un aggiornamento |
| 2025-01-14 10:00:03 | A1B2C3 | download_manifest_start | 2.4.1 | E' partito il recupero del manifesto; SDK sta per scaricare file |
| 2025-01-14 10:00:07 | A1B2C3 | download_40 | 2.4.1 | La download del bundle è al 40% |
| 2025-01-14 10:00:12 | A1B2C3 | download_zip_complete | 2.4.1 | Zip scaricato |
| 2025-01-14 10:00:13 | A1B2C3 | set | 2.4.1 | Il bundle è stato installato e contrassegnato come prossimo da eseguire |
| 2025-01-14 10:05:00 | B9C8D7 | disableAutoUpdateToMajor | 1.9.0 | La politica del canale ha bloccato un salto a 2.x |
| 2025-01-14 10:05:05 | B9C8D7 | rateLimited | integrato | Il dispositivo ha raggiunto il limite delle richieste; SDK si ferma fino al riavvio |
Esempi di Scenari di Registro
Sezione intitolata “Esempi di Scenari di Registro”Per aiutarti a capire cosa i registri ti dicono, ecco sequenze di esempio che mostrano viaggi di aggiornamento reali del dispositivo:
Flusso di Aggiornamento Riuscito
Sezione intitolata “Flusso di Aggiornamento Riuscito”Questo è come dovrebbe apparire un aggiornamento sano nei tuoi registri:
| Tempo | ID dispositivo | Azione | Versione | Cosa significa |
|---|---|---|---|---|
| 10:00:01 | a1b2c3d4 | get | 1.2.0 | Il dispositivo ha controllato gli aggiornamenti e ha ricevuto la versione 1.2.0 info |
| 10:00:02 | a1b2c3d4 | download_10 | 1.2.0 | L'aggiornamento è iniziato, 10% completato |
| 10:00:03 | a1b2c3d4 | download_50 | 1.2.0 | Download a 50% |
| 10:00:05 | a1b2c3d4 | download_complete | 1.2.0 | Download completato con successo |
| 10:00:06 | a1b2c3d4 | set | 1.2.0 | Bundle installato e attivato |
Dispositivo già aggiornato
Sezione intitolata “Dispositivo già aggiornato”Quando un dispositivo controlla ma già ha la versione più recente:
| Tempo | ID dispositivo | Azione | Versione | Cosa significa |
|---|---|---|---|---|
| 14:30:00 | e5f6g7h8 | noNew | 1.2.0 | Il dispositivo è già sulla versione più recente, non è necessario un aggiornamento |
Aggiornamento Fallito con Rollback
Sezione intitolata “Aggiornamento Fallito con Rollback”Quando un aggiornamento fallisce e il dispositivo torna indietro:
| Tempo | ID dispositivo | Azione | Versione | Cosa significa |
|---|---|---|---|---|
| 11:15:00 | i9j0k1l2 | get | 1.3.0 | Dispositivo riceve informazioni sull'aggiornamento |
| 11:15:02 | i9j0k1l2 | download_complete | 1.3.0 | Download completato |
| 11:15:03 | i9j0k1l2 | set | 1.3.0 | Bundle impostato |
| 11:15:10 | i9j0k1l2 | update_fail | 1.3.0 | L'app è crashata o notifyAppReady() non era chiamato - è stato attivato il rollback |
| 11:15:11 | i9j0k1l2 | reset | integrato | Il 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.
Errore di download
Sezione intitolata “Errore di download”Quando problemi di rete impediscono il download:
| Tempo | ID dispositivo | Azione | Versione | Cosa significa |
|---|---|---|---|---|
| 09:45:00 | m3n4o5p6 | get | 1.2.0 | Il dispositivo ha ricevuto informazioni di aggiornamento |
| 09:45:01 | m3n4o5p6 | download_30 | 1.2.0 | È iniziata la download, ma… |
| 09:45:15 | m3n4o5p6 | download_fail | 1.2.0 | Download 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.
Limite del piano raggiunto
Sezione intitolata “Limite del piano raggiunto”Quando il tuo account raggiunge il limite dei dispositivi:
| Tempo | ID dispositivo | Azione | Versione | Cosa significa |
|---|---|---|---|---|
| 16:00:00 | q7r8s9t0 | needPlanUpgrade | - | 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.
Configurazione del canale che blocca gli aggiornamenti
Sottosezione intitolata “Configurazione del canale che blocca gli aggiornamenti”When impostazioni del canale impediscono un aggiornamento:
| Tempo | ID dispositivo | Azione | Versione | Cosa significa |
|---|---|---|---|---|
| 12:00:00 | u1v2w3x4 | disableAutoUpdateToMajor | 2.0.0 | I dispositivi su v1.x non possono aggiornarsi automaticamente a v2.x (salto di versione maggiore bloccato) |
| 12:05:00 | y5z6a7b8 | disableEmulator | 1.2.0 | Rilevato emulatore, e il canale blocca gli emulatori |
| 12:10:00 | c9d0e1f2 | disableDevBuild | 1.2.0 | Rilevato 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.
Codici di registro (Capgo enum backend)
Sezione intitolata “Codici di log (Capgo enum backend)”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 |
|---|---|
get | Il dispositivo ha chiesto a Capgo il manifesto del canale corrente |
download_manifest_start, download_manifest_complete | Iniziato o completato il download del manifesto (per delta o bundle multi-file) |
download_zip_start, download_zip_complete | Iniziato o completato il download di un archivio ZIP |
download_10 … download_90 | Migliaia di progresso del download |
download_0 | Marcatore di progresso del 0% per il primo evento di progresso |
download_complete | Tutto il bundle scaricato |
set | Il bundle è pronto per il prossimo avvio |
reset | Il dispositivo è stato ripristinato con il bundle predefinito |
delete | Il bundle è stato rimosso dalla cache locale |
uninstall | È stato rilevato l'installazione dell'app |
app_moved_to_foreground, app_moved_to_background | Gli eventi di ciclo di vita dell'app sono stati registrati da SDK |
ping | Verifica di salute/heartbeat dal dispositivo |
setChannel, getChannel | Il canale è stato sovrascritto o recuperato tramite SDK |
Nuova soluzione rapida per policy-block / throttle
Sezione intitolata “Nuova soluzione rapida per policy-block / throttle”| Code | Perché ciò accade | Cosa fare successivamente |
|---|---|---|
invalidIp | Capgo è 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. |
needPlanUpgrade | L'organizzazione ha raggiunto il limite di piano/dispositivo. | Aggiornare il piano nel pannello di controllo o attendere il prossimo ciclo di fatturazione. |
semver_error | La 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. |
disablePlatformIos | L'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. |
disablePlatformAndroid | L'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. |
disableAutoUpdate | Il 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. |
disableAutoUpdateUnderNative | Il 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. |
disableAutoUpdateMetadata | Il 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. |
disableAutoUpdateToMajor | Il canale blocca i salti di versione maggiore. | Mantieni le versioni maggiori nella stessa strategia del canale, o consenti i salti maggiori per questo tracciato. |
disableAutoUpdateToMinor | The canali bloccano gli scambi di versione minore. | Conserva le versioni minori nella stessa strategia del canale, o consenti gli scambi minori per questo tracciato. |
disableAutoUpdateToPatch | Il 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. |
disableEmulator | Aggiornamenti 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. |
disableDevBuild | Gli 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. |
disableProdBuild | Un 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. |
cannotGetBundle | Capgo 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. |
cannotUpdateViaPrivateChannel | L'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. |
channelMisconfigured | La 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. |
missingBundle | Il 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. |
NoChannelOrOverride | Non è 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. |
rateLimited | Troppi 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. |
keyMismatch | Il 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. |
disableDevice | Un 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. |
disablePlatformElectron | L'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_url | L'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_refusal | L'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, disableAutoUpdateUnderNative | La strategia del canale vieta questo salto semver |
disablePlatformIos, disablePlatformAndroid | La piattaforma è disabilitata sul canale |
disableDevBuild, disableEmulator | I costrutti di sviluppo o gli emulatori non sono consentiti |
disableProdBuild, disableDevice, disablePlatformElectron | I costrutti di produzione, dispositivi reali o Electron sono bloccati per questo canale |
customIdBlocked | I dispositivi ID personalizzati non sono accettati per questa app |
cannotUpdateViaPrivateChannel, NoChannelOrOverride, channelMisconfigured | La selezione o sovrascrittura del canale è fallita |
missingBundle, cannotGetBundle | Il manifesto si riferisce a un bundle Capgo non può servire |
needPlanUpgrade | L'org ha raggiunto il limite del piano/dispositivo |
rateLimited | Troppi richieste; SDK limita fino al riavvio |
blocked_by_server_url, backend_refusal, invalidIp | La regola del server ha bloccato la richiesta |
Fallimenti di download / integrità / installazione
| Code(s) | Significato |
|---|---|
download_fail | Fallito il download del bundle (errore di rete o risposta) |
download_manifest_file_fail, download_manifest_checksum_fail, download_manifest_brotli_fail | Non è stato possibile recuperare o validare il file di manifesto |
checksum_fail, checksum_required | La verifica dell'integrità è fallita o manca il checksum |
unzip_fail, directory_path_fail, canonical_path_fail, windows_path_fail | La validazione del file system o dello scompattamento è fallita |
decrypt_fail | La decrittazione è fallita (bundle crittografato) |
update_fail | Il bundle è stato installato ma l'app non l'ha mai chiamato notifyAppReady()Esecuzione del rollback attivata |
download_zip_* senza ulteriori set | Download completato ma fase di installazione mai completata |
Eventi runtime / piattaforma
Sottosezione intitolata “Eventi runtime / piattaforma”| Code(s) | Significato |
|---|---|
app_crash, app_crash_native | Eventi di crash da layer runtime o nativo JavaScript. I metadati includono spesso stack, sorgente e informazioni sulla versione attiva. |
app_anr | L'applicazione Android ha segnalato un Application Not Responding. |
app_killed_low_memory, app_killed_excessive_resource_usage | L'applicazione è stata terminata a causa di limiti di memoria o risorse. |
app_initialization_failure, app_memory_warning | L'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_terminated | Errori 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.
Ottenere Maggiori Dettagli su un Registro
Sottosezione intitolata “Ottenere Maggiori Dettagli su un Registro”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.
Continua da Registro
Sottosezione intitolata “Continua da Registro”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.