Debugging
Copia un prompt di configurazione con i passaggi di installazione e la guida markdown completa per questo plugin.
Capire i log del cloud:
Sottosezione intitolata “Capire i log del cloud:”Se ottieni un rifiuto del cloud code e hai bisogno di passaggi di rimediazione concreti, vedi Problemi di Aggiornamento Comuni.
Il registro Capgo può includere metadati per l'evento. Nel dashboard, utilizza il filtro di azione per filtrare per l'azione in snake_case code elencata di seguito, e clicca la cella dei metadati per copiare il payload JSON completo. I metadati sono specialmente utili per gli eventi di crash e WebView perché possono includere contesti 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.
Invia da backend
Sottosezione intitolata “Invia da 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_piano_protezione (aggiornamentoPianoProtezione, precedentemente aggiornamento_piano) | 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_versione_semantica | La versione nativa non segue il formato di versione semantica 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, metadata, o none. |
| aggiornamento_auto_disabilitato_sotto_nativo (disableAutoUpdateUnderNative) | Questo dispositivo ha la versione (1.2.3) e il canale ha un aggiornamento (1.2.2) sotto la versione del dispositivo da inviare, ma è disabilitato nei impostazioni del canale. |
| disable_dev_build (disableDevBuild) | Questo dispositivo ha un build di sviluppo, ma è disabilitato nelle impostazioni del canale. |
| disable_emulator (disableEmulator) | Questo dispositivo è un emulatore, ma è disabilitato nelle impostazioni del canale. |
| cannot_get_bundle (cannotGetBundle) | Non è stato generato un URL firmato valido per il download del bundle. Ciò si verifica quando la generazione dell'URL del bundle fallisce o restituisce un URL non valido e non è disponibile alcun manifesto come fallback. |
| non è possibile aggiornare tramite canale privato (nonEPossoAggiornareTramiteCanalePrivato) | 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 non configurato |
| canaleNonConfigurato (Il canale è configurato per disabilitare l'aggiornamento automatico per numero di versione () | ), ma il campo del bundle è nullo, rendendo impossibile determinare quali dispositivi dovrebbero ricevere l'aggiornamento.disable_auto_update: 'version_number'disabilita l'aggiornamento automatico per i metadati min_update_version disabilitaAggiornamentoAutomaticoPerMetadati |
| __CAPGO_KEEP_0__ (__CAPGO_KEEP_0__) | 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 questo limite. |
| disabilita_aggiornamento_maggiore (disabilitaAggiornamentoMaggiore) | Impostazione del canale disable_auto_update: 'major' impedisce gli aggiornamenti che aumenterebbero il numero di versione maggiore, come bloccare 1.x.x aggiornamento a 2.x.x. |
| disabilita_aggiornamento_minore (disabilitaAggiornamentoMinore) | Impostazione del canale disable_auto_update: 'minor' blocca i pacchetti di destinazione i cui numeri di versione maggiore o minore differiscono dalla versione nativa del dispositivo (version_build) come 1.2.3 -> 1.3.0. |
| disabilita_aggiornamento_auto_per_patch (disabilitaAutoUpdateToPatch) | Impostazione del canale disable_auto_update: 'patch' blocca qualsiasi cambiamento di numero maggiore, minore o di patch da version_build; sono consentiti solo cambiamenti di suffisso mentre MAJOR.MINOR.PATCH rimane identico, come 1.0.0-beta.1 -> 1.0.0-beta.2. |
| pacchetto_mancante (pacchettoMancante) | Il pacchetto assegnato a questo canale non ha contenuti scaricabili. Ciò significa che il pacchetto non ha external_url, non ha r2_path, non è una versione integrata e non sono disponibili entrate del manifesto per il download. |
| nessun_canale (No canale o override è configurato per questa app e il dispositivo non ha un canale specifico di override assegnato. Deve essere presente almeno uno per che le aggiornamenti funzionino.) | Limitato a tasso |
| Limitato a tasso (Il dispositivo è stato limitato a tasso a causa di richieste eccessive.) | Mancata corrispondenza della chiave |
| Mancata corrispondenza della chiave (Il dispositivo ha una chiave di crittografia pubblica che non corrisponde alla chiave pubblica utilizzata per crittografare il pacchetto. I metadati includono) | , e device_key_id, bundle_key_idper aiutare a identificare la mancata corrispondenza. version Invio da dispositivo |
Sezione intitolata “Invio da dispositivo”
Sent from the device| code | Descrizione |
|---|---|
| ping | Azione di test interna utilizzata per verificare il funzionamento del sistema di statistica. |
| get | Le informazioni per il download della nuova versione sono state inviate al dispositivo. |
| delete | È stato eliminato un bundle sul dispositivo. |
| set | È stato impostato un bundle sul dispositivo. |
| set_fail | Il bundle non è stato impostato correttamente. |
| reset | Il dispositivo è stato resettato a builtin bundle. |
| download_XX | È stato scaricato un nuovo bundle - il progresso è indicato dal XX% (incrementi di 10%). |
| download_complete | Il nuovo bundle è stato scaricato con successo. |
| download_manifest_start | Il dispositivo ha iniziato a scaricare l'elenco delle aggiornamenti. |
| download_manifest_complete | Il dispositivo ha completato la scarica dell'elenco delle aggiornamenti. |
| download_zip_start | The dispositivo ha iniziato a scaricare l'archivio del bundle. |
| download_zip_complete | Il dispositivo ha completato lo scaricamento dell'archivio del bundle. |
| download_manifest_file_fail | Una voce del manifesto non è riuscita a scaricarsi; il payload dei dati 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 decomprimersi utilizzando Brotli. |
| download_fail | The nuovo bundle non è stato scaricato. |
| aggiornamento fallito | Il nuovo bundle è stato installato ma non è stato chiamato notifyAppReady. |
| fallimento del controllo del checksum | Il nuovo bundle non è riuscito a validare il checksum. Ciò può accadere per diverse ragioni: 1) Mancanza di corrispondenza tra tipo di checksum: La versione più recente di CLI e plugin (versione 5.10.0+, 6.25.0+ o 7+) utilizza checksums SHA256, mentre 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 bundle è stato caricato con una versione vecchia di CLI. Verificare la versione del bundle nel dashboard Capgo - bundle creati 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 quale tipo di checksum caricare), quindi aggiornare CLI e caricare nuovamente il bundle. 2) Mancanza di corrispondenza tra 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 bundle, la decrittografia fallirà silenziosamente e causerebbe un fallimento del controllo 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 bundle. 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 aggiornamento fallito |
| fail_path_windows | Il zip contiene file che contengono percorsi Windows illegali |
| fail_path_canonical | Il percorso dei file non è canonico |
| fail_path_directory | Ci è stato un errore nel percorso dei file zip |
| fail_unzip | Esecuzione dello svincolo fallita |
| fail_mem_basso | Il download è fallito a causa di bassa memoria sul dispositivo |
| app_moved_to_background | L'applicazione è entrata nello stato di background |
| app_moved_to_foreground | L'applicazione è entrata nello stato di primo piano. |
| app_crash | L'app ha segnalato un crash rilevato dal layer JavaScript o Capacitor. I metadati possono includere il messaggio, lo stack, la fonte e il contesto del pacchetto attivo. |
| app_crash_native | Il layer nativo ha segnalato un crash della piattaforma. I metadati possono includere la piattaforma, la ragione, lo stack e i dettagli del processo quando disponibili. |
| app_anr | Android ha segnalato un evento di non risposta dell'applicazione. I metadati possono includere la ragione dell'ANR, il thread o la sintesi dei tracce quando disponibili. |
| app_killed_low_memory | Il processo dell'app è stato ucciso dopo pressione di memoria bassa. I metadati possono includere la memoria disponibile e i segnali della piattaforma quando disponibili. |
| app_killed_excessive_resource_usage | Il sistema operativo ha ucciso l'app per l'uso eccessivo di risorse. I metadati possono includere il tipo di risorsa o la ragione della piattaforma quando disponibili. |
| fallita_l'initializzazione_dell'app | La flussi di aggiornamento o l'avvio dell'app è fallito prima che il runtime normale fosse pronto. I metadati possono includere il passo che ha fallito e il messaggio di errore. |
| avviso_di_memoria_dell'app | iOS ha segnalato un avviso di memoria. I metadati possono includere il bundle attivo e il contesto di memoria quando disponibili. |
| errore_di_javascript_del_webview | 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. |
| rifiuto_di_promessa_non_gestito_del_webview | Il WebView ha segnalato un rifiuto di promessa non gestito. I metadati possono includere la ragione di rifiuto, l'URL di origine e lo stack. |
| errore_di_risorsa_del_webview | Una risorsa del WebView non è riuscita a caricarsi. I metadati possono includere l'URL, lo stato code, il tipo di risorsa e il messaggio di errore. |
| violazione_di_politica_di_sicurezza_del_webview | 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. |
| riavvio_non_pulito_della_view | 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. |
| processo_di_richiamo_andato_perduto | Android ha segnalato che il processo di richiamo WebView è uscito. I metadati possono includere se il richiamante è crollato e la priorità del richiamante. |
| processo_di_contenuto_view_terminato | iOS ha segnalato che il processo di contenuto WebView è terminato. I metadati possono includere il bundle attivo e l'URL della pagina quando disponibili. |
| decrittografia_fallita | Non è stato possibile decrittare il bundle scaricato. |
| canale_attuale (Canale attuale) | È stato interrogato il canale attuale per il dispositivo. |
| impostazione_canale (impostaCanale) | È stato impostato con successo un canale per il dispositivo. |
| disinstalla | L'applicazione è stata disinstallata o sono stati eliminati i dati Capgo. |
| bloccato_dal_server_url | Server.url è presente nella tua capacitor configurazione, ciò fa in modo che Capacitor serva l'URL remoto e ignorare i file locali, mentre il nostro aggiornatore è fatto per funzionare con file locali. Server.url è considerato da Capacitor Makers come una cattiva pratica in produzione e porterà a molti problemi e plugin non funzionanti correttamente. |
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 presentato per statisticheDOWNLOADING: Stanno scaricando un bundle
Capire i log del dispositivo:
Sezione intitolata “Capire i log del dispositivo:”Comando di debug:
Sezione intitolata “Comando di debug:”C'è un comando di debug per gli utenti di Cloudflare Capgo.
npx @capgo/cli@latest app debugQuesto ti permetterà 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
per trovare i tuoi log su Android Studio
Spiegazioni dei Log
Sottosezione intitolata “Spiegazioni dei Log”Failed to download from=> lo stesso download_failnotifyAppReady was not called, roll back current bundle== identico a == update_fail
Cerca 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 di Xcode.
- Seleziona il tuo dispositivo nella parte sinistra del pannello sotto la sezione dispositivi.
- Questo mostrerà una lista delle app installate dai sviluppatori per quel dispositivo.
- Seleziona l'app che desideri esaminare e poi seleziona l'icona dei puntini 3 vicino alla parte inferiore dello schermo.
- Ecco dove puoi visualizzare il sistema di file corrente selezionando scarica una snapshot di esso.

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

Fare clic destro su questo file e selezionare Mostra Contenuto Pacchetto per aprire la cartella.
Apri la cartella App Data e dovresti ora vedere alcuni cartelli 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:
- Cliccare su View > Finestre degli strumenti > Esplora file del dispositivo o cliccare sul pulsante Esplora file del dispositivo nella barra degli strumenti per aprire l'Esplora file del dispositivo.
- Selezionare un dispositivo dalla lista a discesa.
- Aprire la cartella data/data/APP_NAME/ dove APP_NAME è l'ID del tuo app.

Quindi trovare il versions cartella per vedere tutte le versioni
Capire i log di crash di ios in produzione
Sezione intitolata “Capire i log di crash di ios in produzione”Continua da Debugging
Sezione intitolata “Continua da Debugging”Se stai utilizzando Debugging per pianificare il lavoro di plugin nativo, connettilo con Utilizzare @capgo/capacitor-aggiornatore per la capacità nativa in Utilizzare @capgo/capacitor-aggiornatore, Capgo Directory dei plugin per il workflow del prodotto nella directory dei plugin Capgo, I plugin Capacitor di Capgo per il dettaglio di implementazione in Capacitor Plugins by Capgo, Aggiungere o aggiornare i plugin per il dettaglio di implementazione in Aggiungere o aggiornare i plugin, e Alternative per plugin Enterprise Ionic per il workflow del prodotto in Alternative per plugin Enterprise Ionic.