Saltare al contenuto

Debugging

GitHub

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.

codeDescrizione
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_semanticaLa 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
codeDescrizione
pingAzione di test interna utilizzata per verificare il funzionamento del sistema di statistica.
getLe 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_failIl bundle non è stato impostato correttamente.
resetIl dispositivo è stato resettato a builtin bundle.
download_XXÈ stato scaricato un nuovo bundle - il progresso è indicato dal XX% (incrementi di 10%).
download_completeIl nuovo bundle è stato scaricato con successo.
download_manifest_startIl dispositivo ha iniziato a scaricare l'elenco delle aggiornamenti.
download_manifest_completeIl dispositivo ha completato la scarica dell'elenco delle aggiornamenti.
download_zip_startThe dispositivo ha iniziato a scaricare l'archivio del bundle.
download_zip_completeIl dispositivo ha completato lo scaricamento dell'archivio del bundle.
download_manifest_file_failUna 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_failIl file del manifesto ha fallito la verifica del checksum.
download_manifest_brotli_failIl file del manifesto non è riuscito a decomprimersi utilizzando Brotli.
download_failThe nuovo bundle non è stato scaricato.
aggiornamento fallitoIl nuovo bundle è stato installato ma non è stato chiamato notifyAppReady.
fallimento del controllo del checksumIl 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_windowsIl zip contiene file che contengono percorsi Windows illegali
fail_path_canonicalIl percorso dei file non è canonico
fail_path_directoryCi è stato un errore nel percorso dei file zip
fail_unzipEsecuzione dello svincolo fallita
fail_mem_bassoIl download è fallito a causa di bassa memoria sul dispositivo
app_moved_to_backgroundL'applicazione è entrata nello stato di background
app_moved_to_foregroundL'applicazione è entrata nello stato di primo piano.
app_crashL'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_nativeIl 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_anrAndroid 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_memoryIl 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_usageIl 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'appLa 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'appiOS ha segnalato un avviso di memoria. I metadati possono includere il bundle attivo e il contesto di memoria quando disponibili.
errore_di_javascript_del_webviewIl 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_webviewIl 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_webviewUna 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_webviewIl 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_viewL'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_perdutoAndroid 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_terminatoiOS ha segnalato che il processo di contenuto WebView è terminato. I metadati possono includere il bundle attivo e l'URL della pagina quando disponibili.
decrittografia_fallitaNon è 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.
disinstallaL'applicazione è stata disinstallata o sono stati eliminati i dati Capgo.
bloccato_dal_server_urlServer.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.
  • SUCCESS: installazione del pacchetto completata
  • ERROR: installazione o download fallito
  • PENDING: Download completato, in attesa di rilascio
  • DELETED: Pacchetto eliminato, ancora presentato per statistiche
  • DOWNLOADING: Stanno scaricando un bundle

C'è un comando di debug per gli utenti di Cloudflare Capgo.

Fermata di sistema
npx @capgo/cli@latest app debug

Questo 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

  • Failed to download from => lo stesso download_fail
  • notifyAppReady was not called, roll back current bundle == identico a == update_fail

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. Menu finestra di Xcode mostrando l'opzione dispositivi e simulatori

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.

Pannello dispositivi di Xcode che mostra l'opzione di download del contenitore dell'app

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

File xcappdata scaricato con contesto menu Mostra Contenuto Pacchetto

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.

Struttura della cartella del contenitore dell'app di iOS che mostra le cartelle Documenti e Libreria

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

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.

Esplora file del dispositivo di Android Studio che mostra il percorso del directory dell'app

Quindi trovare il versions cartella per vedere tutte le versioni

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.