Debugging
Copia un prompt di configurazione con i passaggi di installazione e la guida markdown completa per questo plugin.
Capire i log del cloud:
Sezione intitolata “Capire i log del cloud:”Se ricevi un rifiuto del cloud code e hai bisogno di passaggi di rimediazione concreti, vedi Problemi di aggiornamento comuni.
Capgo i log possono includere metadati per l'evento. Nel dashboard, utilizza il filtro di azione per filtrare per l'azione a trattino basso code elencata di seguito, 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 contesto come 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 del sistema operativo. I log più vecchi possono ancora mostrare gli alias di camelCase legacy elencati tra parentesi.
Inviato dal backend
Sezione intitolata “Inviato dal backend”| code | Descrizione |
|---|---|
| indirizzo IP non valido (Ip non valido) | L'utente si trova in un centro dati Google e l'aggiornamento è inferiore a 4 ore. Ciò è fatto per evitare che i dispositivi dei bot Google vengano conteggiati come dispositivi nel tuo account. |
| aggiornamento del piano necessario (aggiornamentoPianoNecessario, precedentemente aggiornamento necessario) | Indica che hai raggiunto il limite del tuo piano e il dispositivo non riceverà aggiornamenti fino a quando non sarai salito di livello o fino al prossimo mese. |
| nessuna nuova versione disponibile (nessunaNuova) | Il dispositivo ha la versione più recente disponibile. |
| errore di versione semantica | La versione nativa non segue il formato di versione semantico previsto. |
| piattaforma_ios_disabilitata (disablePlatformIos) | Il dispositivo è sulla piattaforma iOS, ma quella è disabilitata nei impostazioni del canale. |
| piattaforma_android_disabilitata (disablePlatformAndroid) | Il dispositivo è sulla piattaforma Android, ma quella è disabilitata nei impostazioni del canale. |
| aggiornamento_auto_disabilitato (disableAutoUpdate) | L'aggiornamento auto è disabilitato per politica di compatibilità. I metadati includono auto_update con una regola di corrispondenza come major, minor, patch, metadatao none. |
| aggiornamento_auto_disabilitato_sotto_native (__CAPGO_KEEP_0__) | Il dispositivo ha la versione (1.2.3), e il canale ha un aggiornamento (1.2.2) sotto la versione del dispositivo per inviare, ma che è disabilitato nei impostazioni del canale. |
| __CAPGO_KEEP_0__ (__CAPGO_KEEP_0__) | Il dispositivo ha un build di sviluppo, ma che è disabilitato nelle impostazioni del canale. |
| __CAPGO_KEEP_0__ (__CAPGO_KEEP_0__) | Il dispositivo è un emulatore, ma che è disabilitato nelle impostazioni del canale. |
| __CAPGO_KEEP_1__ (__CAPGO_KEEP_1__) | Non è stato generato un URL firmato valido per il download del bundle. Ciò avviene quando la generazione dell'URL del bundle fallisce o restituisce un URL non valido e non è disponibile un manifesto come fallback. |
| non è possibile aggiornare tramite canale privato (non è possibile aggiornare tramite canale privato) | Il dispositivo ha tentato di associarsi automaticamente a un canale privato, ma le impostazioni del canale non consentono l'associazione automatica del dispositivo (allow_device_self_set canale configurato in modo errato |
| canale configurato in modo errato (Il canale è configurato per disabilitare l'aggiornamento automatico in base al numero di versione () | disabilitare l'aggiornamento automatico per i metadatidisable_auto_update: 'version_number'disabilitare l'aggiornamento automatico per i metadati min_update_version disabilitare l'aggiornamento automatico per i metadati |
| disabilitare l'aggiornamento automatico per i metadati (disabilitare l'aggiornamento automatico per i metadati) | L'aggiornamento automatico è disabilitato dai metadati del numero di versione. Il canale richiede che la versione del dispositivo sia almeno min_update_versionma la versione corrente del dispositivo è inferiore a questo limite. |
| Impedisci l'aggiornamento automatico per versioni maggiori (Impedisci l'aggiornamento automatico per versioni maggiori) | Impostazione del canale disable_auto_update: 'major' impedisce gli aggiornamenti che aumenterebbero il numero di versione maggiore, come bloccando 1.x.x dall'aggiornamento a 2.x.x. |
| Impedisci l'aggiornamento automatico per versioni minori (Impedisci l'aggiornamento automatico per versioni minori) | Impostazione del canale disable_auto_update: 'minor' impedisce gli aggiornamenti che aumenterebbero il numero di versione minore, come bloccando 1.2.x dall'aggiornamento a 1.3.x. |
| disabilita_aggiornamenti_auto_per_patch (disabilitaAggiornamentiAutoPerPatch) | Impostazione del canale disable_auto_update: 'patch' prevenire gli aggiornamenti che aumenterebbero il numero di versione patch, o consentire aggiornamenti di livello patch all'interno della stessa versione maggiore.minore. |
| bundle_mancante (bundleMancante) | Il bundle assegnato a questo canale non ha contenuto scaricabile. Ciò significa che il bundle non ha external_urlnessuno r2_pathnon è una versione integrata, e non sono disponibili entrate del manifesto per il download. |
| nessun_canale (NessunCanaleOOverride) | Non è configurato alcun canale predefinito per questa app e il dispositivo non ha alcun canale specifico sovrascritto assegnato. Almeno uno deve essere presente affinché gli aggiornamenti funzionino. |
| limitato a tasso (rateLimited) | Il dispositivo è stato limitato a tasso a causa di richieste eccessive. |
| mismatch_id_chiave (keyMismatch) | La chiave di crittografia pubblica del dispositivo non corrisponde alla chiave pubblica utilizzata per crittografare il bundle. I metadati includono device_key_id, bundle_key_id, e version per aiutare a identificare il mismatch. |
Inviato dal dispositivo
Sezione intitolata “Inviato dal dispositivo”| code | Descrizione |
|---|---|
| ping | Azione di test interna utilizzata per verificare che il sistema di statistica funzioni correttamente. |
| get | Le informazioni per il download della nuova versione sono state inviate al dispositivo. |
| delete | È stato cancellato un bundle sul dispositivo. |
| set | È stato impostato un bundle sul dispositivo. |
| set_fail | Il bundle non è stato impostato correttamente. |
| reset | Il dispositivo è stato resettato al builtin pacchetto. |
| downloada XX | È stato scaricato un nuovo pacchetto - il progresso è indicato dal XX% (incrementi di 10%). |
| download completo | È stato completato il download del nuovo pacchetto. |
| inizio download manifesto | Il dispositivo ha iniziato a scaricare l'aggiornamento del manifesto. |
| download manifesto completo | Il dispositivo ha completato il download del manifesto di aggiornamento. |
| inizio download archivio zip | Il dispositivo ha iniziato a scaricare l'archivio zip del pacchetto. |
| download zip completo | The dispositivo ha completato il download dell'archivio del bundle. |
| download_manifest_file_fail | Uno elemento del manifesto non è riuscito a scaricare; il payload di statistiche mette version_name in forma version:fileName per individuare l'asset. |
| download_manifest_checksum_fail | Il file del manifesto ha fallito la verifica del checksum. |
| download_manifest_brotli_fail | Il file del manifesto non è riuscito a decomprimere utilizzando Brotli. |
| download_fail | La nuova bundle non è riuscita a scaricare. |
| update_fail | The nuovo pacchetto è stato installato ma non è stato chiamato notifyAppReady. |
| checksum_fail | Il nuovo pacchetto non è riuscito a validare il checksum. Ciò può accadere per diverse ragioni: 1) Mancanza di corrispondenza del tipo di checksum: Il più recente versione di CLI e plugin (versione 5.10.0+, 6.25.0+ o 7+) utilizza checksum SHA256, mentre gli plugin più vecchi utilizzavano CRC32. Se si vede un fallimento del checksum, controllare se il checksum è CRC32 (un hash più corto) piuttosto che SHA256. Ciò indica generalmente che il pacchetto è stato caricato con una versione vecchia di CLI. Verificare la versione del pacchetto nel dashboard Capgo - i pacchetti creati a partire dalla versione 5.10.0/6.25.0/7 utilizzano SHA256. Se si vedono checksum CRC32, assicurarsi di avere la versione plugin più recente installata localmente (il CLI controlla la versione plugin locale per determinare il tipo di checksum da caricare), quindi aggiornare CLI e caricare nuovamente il pacchetto. 2) Mancanza di corrispondenza della chiave di crittografia (su versioni plugin sotto 8.3.0 o 5/6/7.38.0): Sui plugin più vecchi, se la chiave pubblica del dispositivo non corrisponde alla chiave utilizzata per crittografare il pacchetto, la decrittografia fallirà silenziosamente e causerebbe un fallimento del checksum. Se si utilizza la crittografia e si vedono checksum_failverificare che la chiave pubblica dell'app capacitor.config.json corrisponda alla chiave privata utilizzata per caricare il pacchetto. Aggiornando a plugin versione 8.3.0+ (o 5/6/7.38.0+) si avrà un errore corretto dal server, rendendo più facile diagnosticare questo problema. keyMismatch windows_path_fail |
| Il zip contiene file che contengono percorsi Windows che sono illegali | checksum_fail |
| path_canonical_fail | Il percorso dei file non è canonico |
| directory_path_fail | Ci è stato un errore nel percorso dei file zip |
| unzip_fail | L'estrazione dei file zip è fallita |
| low_mem_fail | L'installazione è fallita a causa di scarsa memoria disponibile sul dispositivo |
| app_moved_to_background | L'applicazione è stata spostata in stato di background |
| app_moved_to_foreground | L'applicazione è stata spostata in stato di foreground |
| app_crash | L'applicazione ha segnalato un crash rilevato dal layer JavaScript o Capacitor. |
| app_crash_native | Il layer nativo ha segnalato un crash della piattaforma. |
| app_anr | L'Android ha segnalato un evento di non risposta dell'applicazione. I metadati possono includere la ragione, il thread o la sintesi del tracciato quando disponibili. |
| app_killed_low_memory | Il processo dell'applicazione è stato ucciso a causa di pressione di memoria bassa. I metadati possono includere la memoria disponibile e i segnali della piattaforma quando disponibili. |
| app_killed_excessive_resource_usage | L'System ha ucciso l'applicazione per l'uso eccessivo delle risorse. I metadati possono includere il tipo di risorsa o la ragione della piattaforma quando disponibili. |
| app_initialization_failure | Il flusso di avvio o aggiornamento dell'applicazione è fallito prima che il runtime normale fosse pronto. I metadati possono includere il passo fallito e il messaggio di errore. |
| app_memory_warning | iOS ha segnalato un avviso di memoria. I metadati possono includere il bundle attivo e il contesto di memoria quando disponibili. |
| webview_javascript_error | Il WebView ha segnalato un errore di JavaScript non catturato. I metadati possono includere il messaggio, l'URL di origine, la riga, la colonna e lo stack. |
| webview_unhandled_rejection | Il WebView ha segnalato una rifiutazione di promessa non gestita. I metadati possono includere la ragione di rifiuto, l'URL di origine e lo stack. |
| webview_resource_error | Un risorsa WebView non è riuscita a caricare. I metadati possono includere l'URL, lo stato code, il tipo di risorsa e il messaggio di errore. |
| webview_security_policy_violation | Il WebView ha segnalato una violazione della politica di sicurezza del contenuto. I metadati possono includere l'URI bloccato, la direttiva e l'URL del documento. |
| webview_unclean_restart | L'app ha rilevato una sessione WebView precedente che non si è chiusa in modo pulito. Ciò può aiutare a identificare i loop di crash dopo un aggiornamento. |
| Il processo di rendering del WebView è andato perduto. | L'Android ha segnalato che il processo di rendering del WebView è uscito. I metadati possono includere se il renderer si è bloccato e la priorità del renderer. |
| Il processo di contenuto del WebView è stato interrotto. | L'iOS ha segnalato che il processo di contenuto del WebView è stato interrotto. I metadati possono includere il bundle attivo e l'URL della pagina quando disponibili. |
| La decrittografia del bundle scaricato è fallita. | get_canale |
| getChannel (È stata richiesta la canale corrente per il dispositivo.) | set_canale |
| È stato impostato con successo un canale per il dispositivo. (get_channel) | set_channel |
| rimuovi | The application was uninstalled or Capgo data cleared. |
| bloccato_dal_server_url | Server.url is present in your capacitor config, this make Capacitor serve remote url and ignore local files, while our updater is made to function with local file, Server.url Is consider by Capacitor Makers as bad practice in production and will lead to many issue and plugin not working correctly. |
Stato del pacchetto
Sezione intitolata “Stato del pacchetto”SUCCESS: installazione del pacchetto completataERROR: installazione o download fallitoPENDING: Download completato, in attesa di rilascioDELETED: Pacchetto eliminato, ancora presente per le statisticheDOWNLOADING: In corso il download di un pacchetto
Capire i log del dispositivo:
Sezione intitolata “Capire i log del dispositivo:”Comando di debug:
Sezione intitolata “Comando di debug:”Ci sono comandi di debug per gli utenti di cloud Capgo.
npx @capgo/cli@latest app debugCiò ti consentirà di verificare tutti gli eventi che si verificano nell'app e trovare una soluzione se gli aggiornamenti non avvengono.
per trovare i tuoi log su Xcode
Android:
Sezione intitolata “Android:”per trovare i tuoi log su Android Studio
Spiegazioni dei Log
Sezione intitolata “Spiegazioni dei Log”Failed to download from=> lo stesso download_failnotifyAppReady was not called, roll back current bundle=> lo stesso di update_fail
Trova il bundle scaricato sul tuo dispositivo
Sezione intitolata “Trova il bundle scaricato sul tuo dispositivo”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.

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 tre in basso dello schermo.
- Ecco dove puoi visualizzare il sistema di file corrente selezionando scarica un snapshot di esso.

Selezionando Download Container… scaricherà e esporterà un snapshot del sistema di file come un file .xcappdata che puoi esplorare.

Fare clic destro su questo file e selezionare Mostra contenuto della cartella per aprire la cartella.
Apri la cartella App Data e dovresti ora vedere alcune cartelle come Documenti, Libreria, tmp, ecc.

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
Android
Sezione intitolata “Android”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 della finestra per aprire l'Esplora file del dispositivo.
- Seleziona un dispositivo dalla lista a discesa.
- Apri il percorso data/data/__CAPGO_KEEP_0__/ dove __CAPGO_KEEP_0__ è il tuo ID dell'applicazione.

Poi trova il versions cartella per vedere tutte le versioni