Debugging
Comprensione dei log cloud:
Section titled “Comprensione dei log cloud:”Se ricevi un codice di rifiuto del cloud e sono necessarie misure correttive concrete, consulta Problemi comuni di aggiornamento.
Inviato dal backend| codice | Descrizione |
Section titled “Inviato dal backend| codice | Descrizione |”| ------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Ip non valido | L’utente si trova in un data center Google e l’aggiornamento risale a meno di 4 ore fa. Questo viene fatto per impedire che i dispositivi dei bot Google vengano conteggiati come dispositivi nel tuo account. |
| needPlanUpgrade (in precedenza needUpgrade) | Indica che hai raggiunto il limite del tuo piano e che il dispositivo non riceverà aggiornamenti fino all’aggiornamento o fino al mese successivo. |
| noNovità | Il dispositivo ha l’ultima versione disponibile. |
| disablePlatformIos | Il dispositivo si trova sulla piattaforma iOS, ma è disabilitata nelle impostazioni del canale. |
| disablePlatformAndroid | Il dispositivo si trova sulla piattaforma Android, ma è disabilitata nelle impostazioni del canale. |
| disabilitaaggiornamento automatico | “maggiore” | “minore” | “numero_versione” | “nessuno” |
| disableAutoUpdateUnderNative | Il dispositivo ha una versione (1.2.3) e il canale ha un aggiornamento (1.2.2) nella versione del dispositivo da inviare, ma questo è disabilitato nelle impostazioni del canale. |
| disableDevBuild | Il dispositivo ha una build di sviluppo, ma è disabilitata nelle impostazioni del canale. |
| disableEmulator | Il dispositivo è un emulatore, ma è disabilitato nelle impostazioni del canale. |
| impossibileGetBundle | Impossibile generare un URL firmato valido per il download del pacchetto. Ciò si verifica quando la generazione dell’URL del bundle non riesce o restituisce un URL non valido (che non inizia con http/https) e non è disponibile alcun manifest come fallback. |
| impossibile aggiornare tramite canale privato | Il dispositivo ha tentato di autoassociarsi a un canale privato, ma le impostazioni del canale non consentono l’autoassociazione del dispositivo (allow_device_self_set è falso) e il canale non è pubblico. |
| canale non configurato correttamente | Il canale è configurato per disabilitarele si aggiorna automaticamente in base al numero di versione (disable_auto_update: 'version_number'), ma il campo min_update_version del bundle è nullo, rendendo impossibile determinare quali dispositivi dovrebbero ricevere l’aggiornamento. |
| disableAutoUpdateMetadata | L’aggiornamento automatico è disabilitato dai metadati del numero di versione. Il canale richiede che la versione del dispositivo sia almeno min_update_version, ma la versione corrente del dispositivo è inferiore a questa soglia. |
| disableAutoUpdateToMajor | L’impostazione del canale disable_auto_update: 'major' impedisce gli aggiornamenti che aumenterebbero il numero della versione principale (ad esempio, bloccando 1.x.x dall’aggiornamento a 2.x.x). |
| disableAutoUpdateToMinor | L’impostazione del canale disable_auto_update: 'minor' impedisce gli aggiornamenti che aumenterebbero il numero di versione secondaria (ad esempio, bloccando 1.2.x dall’aggiornamento a 1.3.x). |
| disableAutoUpdateToPatch | L’impostazione del canale disable_auto_update: 'patch' impedisce gli aggiornamenti che aumenterebbero il numero di versione della patch o consente solo aggiornamenti a livello di patch all’interno della stessa versione major.minor (ad esempio, 1.2.3 può essere aggiornato a 1.2.4 ma non 1.2.2 o 1.3.0). |
| Pacchetto mancante | Il bundle assegnato a questo canale non ha contenuti scaricabili. Ciò significa che il bundle non ha external_url, né r2_path, non è una versione integrata e non ci sono voci manifest disponibili per il download. |
| NoChannelOrOverride | Per questa app non è configurato alcun canale predefinito e al dispositivo non è assegnato alcun canale specifico. Almeno uno deve essere presente affinché gli aggiornamenti funzionino. |
| tariffa limitata | La tariffa del dispositivo è stata limitata a causa delle richieste eccessive. |
| chiave non corrispondente | La chiave pubblica di crittografia del dispositivo non corrisponde alla chiave pubblica utilizzata per crittografare il pacchetto. Ciò accade quando: (1) la chiave pubblica capacitor.config.json della tua app è diversa da quella utilizzata durante il caricamento del pacchetto oppure (2) hai ruotato le chiavi di crittografia ma non hai ancora aggiornato tutti i dispositivi. La risposta include sia deviceKeyId che bundleKeyId (i primi 4 caratteri di ciascuna chiave pubblica) per aiutare a identificare la mancata corrispondenza. Per risolvere questo problema, assicurati che venga utilizzata la stessa coppia di chiavi sia per il caricamento dei bundle (CLI utilizza la chiave privata) sia nell’app (capacitor.config.json contiene la chiave pubblica). |### Inviato dal dispositivo| codice | Descrizione |
| --------------------- | --------------------------------------------------------------------------------- |
| ping | Azione di test interno utilizzata per verificare che il sistema delle statistiche funzioni correttamente. |
| prendi | Le informazioni per scaricare la nuova versione sono state inviate al dispositivo. |
| elimina | Un pacchetto è stato eliminato dal dispositivo. |
| imposta | Sul dispositivo è stato impostato un pacchetto. |
| set_fail | Impossibile impostare il pacchetto. |
| reimposta | Il dispositivo è stato reimpostato sul pacchetto builtin. |
| scarica_XX | È stato scaricato un nuovo pacchetto: avanzamento indicato dal XX% (incrementi del 10%). |
| download_completo | Il download del nuovo bundle è terminato. |
| download_manifest_start | Il dispositivo ha iniziato a scaricare il manifesto dell’aggiornamento. |
| download_manifest_complete | Il dispositivo ha terminato il download del manifesto dell’aggiornamento. |
| download_zip_start | Il dispositivo ha iniziato a scaricare l’archivio del bundle. |
| download_zip_complete | Il dispositivo ha terminato il download dell’archivio del bundle. |
| download_manifest_file_fail | Impossibile scaricare una voce manifest; il payload delle statistiche inserisce version_name nel modulo version:fileName per individuare la risorsa. |
| download_manifest_checksum_fail | Il file manifest non ha superato la convalida del checksum. |
| download_manifest_brotli_fail | Impossibile decomprimere il file manifest utilizzando Brotli. |
| download_fail | Impossibile scaricare il nuovo bundle. |
| update_fail | Il nuovo bundle è stato installato ma non è stato possibile chiamare notifyAppReady. |
| checksum_fail | Il nuovo bundle non è riuscito a convalidare il checksum. Ciò può verificarsi per diversi motivi: 1) Mancata corrispondenza del tipo di checksum: l’ultima versione di CLI e dei plugin (versione 5.10.0+, 6.25.0+ o 7+) utilizza checksum SHA256, mentre i plugin più vecchi utilizzavano CRC32. Se vedi un checksum fallire, controlla se il checksum è CRC32 (un hash più breve) anziché SHA256. Questo di solito indica che il pacchetto è stato caricato con una versione precedente di CLI. Verifica la versione del tuo bundle nel dashboard Capgo: i bundle creati a partire dalla versione 5.10.0/6.25.0/7 dovrebbero utilizzare SHA256. Se visualizzi checksum CRC32, assicurati di avere la versione più recente del plug-in installata localmente (CLI controlla la versione del plug-in locale per determinare quale tipo di checksum caricare), quindi aggiorna il tuo CLI e ricarica il pacchetto. 2) Mancata corrispondenza della chiave di crittografia (sulle versioni del plug-in precedenti alla 8.3.0 o 5/6/7.38.0): Nelle versioni del plug-in precedenti, se la chiave pubblica del dispositivo non corrisponde alla chiave utilizzata per crittografare il pacchetto,la decrittografia fallirà silenziosamente e causerà un errore di checksum. Se utilizzi la crittografia e vedi checksum_fail, verifica che la chiave pubblica in capacitor.config.json della tua app corrisponda alla chiave privata utilizzata per caricare il pacchetto. L’aggiornamento alla versione del plugin 8.3.0+ (o 5/6/7.38.0+) ti darà invece un errore keyMismatch corretto dal server, rendendo questo problema più facile da diagnosticare. |
| windows_path_fail | Lo zip contiene file che contengono percorsi di Windows illegali |
| canonical_path_fail | Il percorso dei file non è canonico |
| percorso_directory_fail | C’è un errore nel percorso dei file zip |
| unzip_fail | decompressione non riuscita |
| low_mem_fail | Download non riuscito a causa della memoria insufficiente nel dispositivo |
| app_moved_to_ background | L’applicazione è entrata nello stato in background. |
| app_moved_to_foreground | L’applicazione è entrata nello stato in primo piano. |
| decrypt_fail | Impossibile decrittografare il pacchetto scaricato. |
| getChannel | È stato interrogato il canale attuale del dispositivo. |
| setChannel | Un canale è stato impostato correttamente per il dispositivo. |
| disinstalla | L’applicazione è stata disinstallata o i dati Capgo sono stati cancellati. |
| bloccato_da_url_server | Server.url è presente nella configurazione del condensatore, questo fa sì che Capacitor serva l’URL remoto e ignori i file locali, mentre il nostro programma di aggiornamento è fatto per funzionare con il file locale, Server.url è considerato dai produttori di Capacitor una cattiva pratica in produzione e porterà a molti problemi e il plug-in non funzionerà correttamente. |### Stato del pacchetto
SUCCESS: installazione del pacchetto completataERROR: installazione o download non riuscitoPENDING: download completato, in attesa di rilascioDELETED: pacchetto eliminato, ancora presentato per le statisticheDOWNLOADING: sto scaricando un pacchetto in corso
Comprensione dei log del dispositivo:
Section titled “Comprensione dei log del dispositivo:”Comando di debug:
Section titled “Comando di debug:”È disponibile un comando di debug per gli utenti cloud Capgo.
npx @capgo/cli@latest app debugCiò ti consentirà di controllare tutti gli eventi che si verificano nell’app e trovare una soluzione se gli aggiornamenti non vengono eseguiti.
###IOS
per trovare i tuoi registri su Xcode
Android:
Section titled “Android:”per trovare i tuoi registri su Android studio
Spiegazioni Registri
Section titled “Spiegazioni Registri”Impossibile scaricare da=> uguale a download_failnotifyAppReady non è stato chiamato, ripristina il bundle corrente=> come update_fail
Trovare il pacchetto scaricato sul tuo dispositivo
Section titled “Trovare il pacchetto scaricato sul tuo dispositivo”Per eseguire il debug su iOS, devi scaricare l’app sul tuo computer, puoi farlo in questo modo:
Xcode dispone di una funzionalità integrata per ispezionare il file system delle app installate dallo sviluppatore su un dispositivo iOS.

Per raggiungere questo obiettivo:
- Collega il tuo dispositivo al Mac e seleziona Finestra > Dispositivi nella barra dei menu Xcode.
- Seleziona il tuo dispositivo nel riquadro di sinistra nella sezione Dispositivi.
- Verrà visualizzato un elenco delle app installate dallo sviluppatore per quel dispositivo.
- Seleziona l’app che desideri controllare, quindi seleziona l’icona a 3 punti nella parte inferiore dello schermo.
- Qui è possibile visualizzare il file system corrente selezionando scaricarne un’istantanea.

Selezionando Scarica contenitore… verrà scaricata ed esportata un’istantanea del file system come file .xcappdata che è possibile sfogliare.

Fare clic con il tasto destro su questo file e selezionare Mostra contenuto pacchetto per aprire la cartella.
Apri la cartella Dati app e ora dovresti vedere alcune cartelle come Documenti, Libreria, tmp, ecc.

Quindi troverai una versione in 2 cartelle:
library/NoCloud/ionic_built_snapshots è necessario dopo il riavvio dell’app
e documents/versions per la ricarica a caldo
Android
Section titled “Android”Per eseguire il debug su Android, devi accedere al dispositivo da Android Studio:
- Fare clic su Visualizza > Finestre degli strumenti > Esplora file dispositivo oppure fare clic sul pulsante Esplora file dispositivo nella barra della finestra degli strumenti per aprire Esplora file dispositivo.
- Seleziona un dispositivo dall’elenco a discesa.
- Apri il percorso data/data/APP_NAME/ dove APP_NAME è l’ID della tua app.

Quindi trova la cartella versions per vedere tutte le versioni
Lo sapevate?
Su Android, tutte le versioni sono archiviate in una cartella, a differenza di IOS dove deve essere duplicato in due posizioni.