Log
Copia un prompt di configurazione con i passaggi di installazione e la guida markdown completa per questo plugin.
Log e Log Insights
Sottosezione intitolata “Log e Log Insights”L'app Log context: Pagina/Area: Capgo Builder / prodotto di costruzione cloud nativa. Ruolo: Etichetta di navigazione breve o elemento UI. Visualizzato in: pagina native-build.astro. Chiave di messaggio `native_build_v2_trust_logs_lbl` (Native Build V2 Trust Logs Lbl). Log Insights di default. Utilizza Insights per dare priorità alle categorie, alle versioni e ai dispositivi per un periodo di 1, 3, 7 o 30 giorni. Passa alla Logs subtab quando hai bisogno degli eventi di dispositivo sottostanti, dei filtri e degli orari descritti di seguito.
Capire i Log dell'Applicazione
Sottosezione intitolata “Capire i Log dell'Applicazione”Il sottotab Log raw fornisce una dettagliata storia degli eventi di aggiornamento e delle informazioni diagnostiche per la tua applicazione. È utile per confermare la prova di livello dispositivo dietro un'Insight, per risolvere un percorso di aggiornamento e per capire come i dispositivi interagiscono con Capgo. Apri un'app, scegli Logs, poi scegli il Logs sottotab.

L'interfaccia dei registri raw include:
- Sottotab Registri — il controllo di navigazione per le righe dei registri individuali.
- Pulsante di ricarica — aggiorna la lista dei registri con i dati più recenti.
- Filtri di intervallo di tempo e azione — restringe lo stream degli eventi per il tempo e l'azione.
Ogni riga mostra:
- Timestamp (UTC)
- ID dispositivo
- Action code (cosa è successo)
- Nome della versione (pacchetto o
builtin)
Clicca una riga per saltare alla pagina dei dettagli del dispositivo per la sua storia completa.
Filtra per Intervallo di Data
Sottosezione intitolata “Filtra per Intervallo di Data”Puoi filtrare i log per un periodo di tempo specifico utilizzando il calendario:

- Preset Veloci - Seleziona intervalli di tempo comuni: Ultimi 1h, 3h, 6h o 12h
- Orario di Inizio - Imposta un orario di inizio personalizzato per la fascia di tempo
- Orario di Fine - Imposta un orario di fine personalizzato per la fascia di tempo
- Calendario - Scegli date specifiche utilizzando la vista del calendario
Clicca su “Seleziona” per applicare la tua scelta di intervallo di date, o su “Annulla” per annullare il picker.
Filtra per Tipo di Azione
Sezione intitolata “Filtra per Tipo di Azione”Il menu a discesa delle Azioni ti consente di filtrare i log per tipi di eventi specifici:

Filtri di azione disponibili:
- Device heartbeat - Verifiche di salute periodiche dai dispositivi
- Richiesta di cancellazione della versione - Quando viene cancellata una versione del pacchetto
- Resetta alla versione predefinita - Quando un dispositivo torna al pacchetto predefinito
- Versione installata con successo - Installazione del pacchetto riuscita
- Nuova versione inviata al dispositivo - When Capgo sends an update to a device
- Installazione della versione fallita - Quando l'installazione del pacchetto 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)
Sezione intitolata “Esempio di frammento di log (dati fittizi)”| Ora (UTC) | ID dispositivo | Azioni | Versione | Cosa ti dice |
|---|---|---|---|---|
| 2025-01-14 10:00:01 | A1B2C3 | get | 2.4.1 | Il dispositivo ha chiesto Capgo se è disponibile un aggiornamento |
| 2025-01-14 10:00:03 | A1B2C3 | download_manifest_start | 2.4.1 | E' stato avviato il recupero del manifesto; SDK sta per scaricare i file |
| 2025-01-14 10:00:07 | A1B2C3 | download_40 | 2.4.1 | La scarica del pacchetto è al 40% |
| 2025-01-14 10:00:12 | A1B2C3 | download_zip_complete | 2.4.1 | Zip scaricato con successo |
| 2025-01-14 10:00:13 | A1B2C3 | set | 2.4.1 | Bundle installato e segnalato 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 | Dispositivo raggiunto il limite delle richieste; SDK si ferma fino al riavvio |
Esempi di Scenari di Log
Sottosezione intitolata “Esempi di Scenari di Log”Per aiutarti a capire cosa i log ti dicono, ecco alcune sequenze di esempio che mostrano viaggi di aggiornamento reali del dispositivo:
Ciclo di Aggiornamento Riuscito
Sottosezione intitolata “Ciclo di Aggiornamento Riuscito”Questo è come dovrebbe apparire un aggiornamento sano nei tuoi log:
| Ora | ID dispositivo | Azione | Versione | Cosa significa |
|---|---|---|---|---|
| 10:00:01 | a1b2c3d4 | get | 1.2.0 | Dispositivo controllato per aggiornamenti e ricevuto versione 1.2.0 info |
| 10:00:02 | a1b2c3d4 | download_10 | 1.2.0 | Scaricamento iniziato, 10% completato |
| 10:00:03 | a1b2c3d4 | download_50 | 1.2.0 | Scaricamento al 50% |
| 10:00:05 | a1b2c3d4 | download_complete | 1.2.0 | Scaricamento completato con successo |
| 10:00:06 | a1b2c3d4 | set | 1.2.0 | Pacchetto installato e attivato |
Dispositivo già all'ultima versione
Sottosezione intitolata “Dispositivo già all'ultima versione”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à alla 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 di 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'applicazione si è bloccata o non è stata chiamata - rollback attivato notifyAppReady() integrato |
| 11:15:11 | i9j0k1l2 | reset | Dispositivo ripristinato alla versione integrata | Azione necessaria |
: Controlla che la tua app chiamiDopo l'inizializzazione con successo. Vedi notifyAppReady() __CAPGO_KEEP_0__ Della documentazione del plugin Per maggiori informazioni.
Fallimento del download
Sottosezione intitolata “Fallimento del download”Quando problemi di rete impediscono il download:
| Tempo | ID dispositivo | Azione | Versione | Cosa significa |
|---|---|---|---|---|
| 09:45:00 | m3n4o5p6 | get | 1.2.0 | Dispositivo riceve informazioni di aggiornamento |
| 09:45:01 | m3n4o5p6 | download_30 | 1.2.0 | È stato avviato il download, ma… |
| 09:45:15 | m3n4o5p6 | download_fail | 1.2.0 | Scarico fallito (timeout di rete, connessione persa, ecc.) |
Azione necessaria: Il dispositivo si riproverà automaticamente alla prossima avviatura dell'applicazione. Nessuna azione è richiesta a meno che ciò non accada frequentemente.
Limite del piano raggiunto
Sottosezione 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 sarai salito di livello o non si sarà resettato il ciclo di fatturazione |
Azioni necessarie: Aggiorna il tuo piano o aspetta il prossimo ciclo di fatturazione.
Blocco Aggiornamenti Configurazione Canale
Sezione intitolata “Blocco Aggiornamenti Configurazione Canale”Quando le impostazioni del canale impediscono un aggiornamento:
| Tempo | ID dispositivo | Azione | Versione | Cosa significa |
|---|---|---|---|---|
| 12:00:00 | u1v2w3x4 | disableAutoUpdateToMajor | 2.0.0 | Il dispositivo su v1.x non può aggiornarsi automaticamente a v2.x (salto di versione maggiore bloccato) |
| 12:05:00 | y5z6a7b8 | disableEmulator | 1.2.0 | Emulatore rilevato, e il canale blocca gli emulatori |
| 12:10:00 | c9d0e1f2 | disableDevBuild | 1.2.0 | Costruzione di sviluppo rilevata, e il canale blocca le costruzioni di sviluppo |
Azioni necessarie: Questi sono protezioni intenzionali. Se desideri consentire queste aggiornamenti, modifica le impostazioni del tuo canale.
Codici di log (Capgo enum backend)
Sezione intitolata “Codici di log (Capgo enum backend)”Questi codici provengono dall' stats_action enum utilizzato dalla dashboard API (capgo/src/types/supabase.types.ts). Se vedi un nuovo code nell'interfaccia utente, è stato emesso dal SDK o backend e validato contro questa lista.
Percorso felice & ciclo di vita
| Code(s) | Significato |
|---|---|
get | Dispositivo chiede Capgo per il manifesto del canale corrente |
download_manifest_start, download_manifest_complete | Manifesto scaricato iniziato / completato (per bundle delta o multi-file) |
download_zip_start, download_zip_complete | Scaricamento dell'archivio zip iniziato / completato |
download_10 … download_90 | Migliaia di progresso del download |
download_0 | 0% di progresso per il primo evento di progresso |
download_complete | Tutto il bundle scaricato |
set | Bundle pronto per il prossimo avvio |
reset | Dispositivo tornato al bundle predefinito |
delete | Bundle rimosso dalla memoria locale |
uninstall | App uninstall rilevata |
app_moved_to_foreground, app_moved_to_background | Eventi di ciclo di vita dell'app registrati da SDK |
ping | Controllo salute/heartbeat dal dispositivo |
setChannel, getChannel | Canale sovrascritto o recuperato tramite chiamata SDK |
Nuova politica di blocco / throttle rapido
Sottosezione intitolata “Nuova politica di blocco / throttle rapido”| Code | Perché succede questo | Cosa fare successivamente |
|---|---|---|
invalidIp | Capgo ha rilevato traffico che sembra essere di tipo bot (indirizzi IP di Google/infrastruttura cloud). | Ignota in 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 | Versione dell'app nativa nella configurazione mancante o non valida (x.y.z). | Configura plugins.CapacitorUpdater.version per valid semver, quindi verifica in il Verificatore di SemVer e ricostruisci l'applicazione. |
disablePlatformIos | iOS è disabilitato nella politica del canale. | Se si trattava di un errore, abilita iOS in quel canale e ripubblica la routing. Se hai intenzionalmente bloccato iOS in questo tracciato, lascialo spento e sposta le build iOS in un canale separato. |
disablePlatformAndroid | Android è disabilitato nella politica del canale. | Se si trattava di un errore, abilita Android in quel canale e ripubblica la routing. Se hai intenzionalmente bloccato Android in questo tracciato, lascialo spento e sposta le build Android in un canale separato. |
disableAutoUpdate | Modalità di aggiornamento automatico del canale blocca questo stile di aggiornamento. | Cambia la politica di aggiornamento automatico del canale (major/minor/patch/metadata/none) per consentire il tuo intento di distribuzione. |
disableAutoUpdateUnderNative | Il canale è impostato per bloccare gli aggiornamenti più vecchi della linea di base del dispositivo. | Invia una versione a o sopra la linea di base nativa, o disabilita quella protezione sotto-nativa. |
disableAutoUpdateMetadata | Richiede il canale min_update_version 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 salto di versione maggiore. | Mantieni le versioni maggiori nello stesso strategia di canale, o consenti i salto di versione maggiore per questo tracciato. |
disableAutoUpdateToMinor | Il canale blocca i salto di versione minore. | Mantieni le versioni minori nello stesso strategia di canale, o consenti i salto di versione minore per questo tracciato. |
disableAutoUpdateToPatch | Il canale blocca i salto di livello di patch per questo flusso. | Allinea il tuo calendario di rilascio, o apri i salto di patch nel canale di politica per questo tracciato. |
disableEmulator | Aggiornamenti dell'emulatore non sono consentiti per questo canale. | Se questo era accidentale, attiva gli aggiornamenti dell'emulatore in un canale di test dove si valutano gli emulatori. Se intenzionale, mantieni questo canale bloccato per gli emulatori e utilizza un altro canale per i costruzioni degli emulatori. |
disableDevBuild | Costruzioni di sviluppo sono bloccate per questo canale. | Se si trattava di un errore, consentire gli aggiornamenti di sviluppo o spostare questo dispositivo su un canale abilitato per lo sviluppo. Se si tratta di un'intenzione, tenere bloccato questo canale solo per costruzioni di rilascio. |
disableProdBuild | Un dispositivo costruito in modalità di produzione chiamato /updates, mentre il tuo canale lo bloccava. | Se si trattava di un errore, consentire gli aggiornamenti di produzione in quel canale e ripubblicare. Se si tratta di un'intenzione, mantenere la restrizione e inviare costruzioni di produzione al canale/costruzione corretto. |
cannotGetBundle | Capgo non è stato in grado di costruire una URL di download valida per il bundle selezionato. | Ricaricare il bundle o rigenerare i manifesti e verificare le impostazioni del bundle R2/public. |
cannotUpdateViaPrivateChannel | L'app ha cercato di passare automaticamente a un canale privato che non consente l'assegnazione auto. | Abilita allow_device_self_set sulla canale o spostati a un canale pubblico/consentito. |
channelMisconfigured | La regola di aggiornamento automatico del canale manca di dati richiesti (version_number senza min_update_version). | Compilare la configurazione mancante per quella regola o passare a un modo di aggiornamento automatico più semplice. |
missingBundle | La raccolta non ha un payload scaricabile (mancante external_url/r2_path e nessun manifesto). | Riavviare/riuploadare la versione e verificare che la raccolta abbia contenuto di file reale. |
NoChannelOrOverride | Non è stato trovato alcun canale per questo dispositivo (nessuna impostazione cloud + nessuna configurazione di fallback + nessuna sovrascrittura). | Impostare un canale di default nel pannello di controllo o mantenere un test defaultChannel in quella versione. |
rateLimited | Si stanno effettuando troppi chiamate di aggiornamento/canale in un breve lasso di tempo (spesso nel ciclo di renderizzazione) setChannel/getChannel). | Smettere di chiamare in renderizzazione. Chiamare solo su azione dell'utente. Utilizzare defaultChannel in capacitor.config. |
keyMismatch | Il ID delle chiavi di crittografia dell'app e della raccolta sono diversi (device_key_id vs bundle_key_id). | In the console, compare device and bundle key IDs. If they differ, publish with the same key and matching CLI/plugin version; key encoding can differ between versions. |
disableDevice | Un dispositivo reale (telefono/tablet) è stato bloccato perché questo canale è impostato per bloccare i dispositivi reali. | Se è stato fatto per errore, attiva le aggiornamenti dei dispositivi reali in quel canale. Se è stato fatto intenzionalmente, lascia bloccato e invia i dispositivi reali a un altro canale. |
disablePlatformElectron | L'Elettron è bloccato in questo canale. | Se è stato fatto per errore, abilita l'Elettron in questo canale e ripubblica la routing. Se è stato fatto intenzionalmente, lascia bloccato e invia gli utenti di Elettron a un canale dedicato. |
customIdBlocked | È stato inviato un ID dispositivo personalizzato, ma questa app non accetta gli ID personalizzati. | Disabilita l'invio degli ID personalizzati o abilita gli ID personalizzati solo se il tuo workflow lo richiede. |
blocked_by_server_url | L'app ha server.url configurato, quindi Capacitor serve l'URL remoto al posto dei file locali. | Cancella/elimina server.url per le versioni di produzione e mantieni i payload degli aggiornamenti locali. |
backend_refusal | L'aggiornatore è v4, che il backend non accetta più. | Aggiorna il plugin/CLI a v5+ (preferisci v8), con Capacitor v5+, quindi 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 di semver |
disablePlatformIos, disablePlatformAndroid | La piattaforma è disabilitata sul canale |
disableDevBuild, disableEmulator | Costruzioni di sviluppo o emulatori non consentiti |
disableProdBuild, disableDevice, disablePlatformElectron | Costruzioni di produzione, dispositivi reali o Electron sono bloccati per questo canale. |
customIdBlocked | Non sono accettati ID dei dispositivi personalizzati per questa app. |
cannotUpdateViaPrivateChannel, NoChannelOrOverride, channelMisconfigured | Fallito la selezione o sovrascrittura del canale. |
missingBundle, cannotGetBundle | La manifestazione si riferisce a un bundle Capgo non può servire. |
needPlanUpgrade | L'organizzazione ha raggiunto il limite del piano/dispositivo. |
Fallimenti di download / integrità / installazione.
| Code(s) | Significato |
|---|---|
download_fail | Fallito il download del bundle (errore di rete o di risposta). |
download_manifest_file_fail, download_manifest_checksum_fail, download_manifest_brotli_fail | Non è stato possibile recuperare o validare il file di manifestazione. |
checksum_fail, checksum_required | Fallito il controllo di integrità o mancante il checksum. |
unzip_fail, directory_path_fail, canonical_path_fail, windows_path_fail | Fallito il controllo del sistema di file o della decompressione. |
decrypt_fail | Fallita la decrittazione (bundle crittografato) |
update_fail | Installato il bundle ma l'app non l'ha mai chiamato notifyAppReady(); rollback attivato |
download_zip_* senza alcun evento successivo set | Terminata la download ma non è stato completato la fase di installazione |
Eventi runtime / piattaforma
Sottosezione intitolata “Eventi runtime / piattaforma”| Code(s) | Significato |
|---|---|
app_crash, app_crash_native | Gli eventi di crash provenienti dai layer runtime o nativi di JavaScript. I metadati includono spesso la pila, la fonte e le informazioni sulla versione attiva. |
app_anr | Android ha segnalato un'applicazione non risponde. |
app_killed_low_memory, app_killed_excessive_resource_usage | L'applicazione è stata terminata a causa dei limiti di memoria o di risorse. |
app_initialization_failure, app_memory_warning | Avvio interrotto o pressione di memoria osservata 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 | Errore di ciclo di vita della WebView e di rendering JS. Installa Sentry in entrambi i layer JS 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 | La versione dell'OS o dell'app nativa è cambiata; 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 completa del Registro Code e della guida di debug.
Ottenere maggiori informazioni su un registro
Sottosezione intitolata “Ottenere maggiori informazioni su un registro”Se clicchi su un'entry di registro specifico, ti porterà tipicamente alla pagina del dispositivo. Ciò ti consente di vedere la storia completa per quel dispositivo specifico, che può essere molto utile per diagnosticare problemi specifici del dispositivo o comprendere il suo percorso di aggiornamento.
Continua da qui dai Registri
Sottosezione intitolata “Continua da qui dai Registri”If sei stai utilizzando Log per pianificare il dashboard e le API operazioni, connettilo con API Overview 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 Pacchetti per i dettagli di implementazione nei Pacchetti.