Debug
Copia un prompt di configurazione con i passaggi di installazione e la guida markdown completa per questo plugin.
Capire i log cloud
Sezione intitolata âCapire i log cloudâSe ricevi un rifiuto cloud code e ti servono procedure di risoluzione piĂš dettagliate, consulta Problemi comuni di aggiornamento.
I log di Capgo possono includere i metadati dell'evento. Nella dashboard, filtra per l'azione in snake_case code e clicca sulla cella dei metadati per copiare l'intero payload JSON. I metadati sono utilissimi per crash ed eventi WebView, poichĂŠ possono includere il messaggio di errore, l'URL sorgente, riga e colonna, lo stato del processo, la pressione di memoria o la causa specifica della piattaforma. I log piĂš vecchi potrebbero ancora mostrare alias legacy in camelCase tra parentesi.
Ogni titolo di sezione corrisponde all'azione code mostrata nella tabella dei log della console, cosĂŹ puoi collegarti direttamente alla sezione.
Limiti del piano e risposte standard
Sezione intitolata âLimiti del piano e risposte normaliâRifiuti del backend relativi a fatturazione, throttling o stati non di errore.
InvalidIp
Sezione intitolata âInvalidIpâCosa significa
Capgo ha rilevato traffico che sembra provenire da Google o da infrastrutture cloud. Gli update con meno di quattro ore di vita vengono ignorati, cosĂŹ il traffico bot non viene conteggiato come dispositivi fatturabili.
Cosa fare
Ignora questo errore per gli utenti reali. Riprova da reti normali e dispositivi reali, oppure attendi e ricontrolla piĂš tardi.
provider_infrastructure_request_blocked
Sezione intitolata âprovider_infrastructure_request_blockedâCosa significa
La tua app è configurata per bloccare le richieste dai range IP noti dei datacenter Google e Apple. La protezione vale per i controlli degli aggiornamenti, le statistiche e le richieste channel-self, quindi i probe ospitati nel cloud e i runner del provider possono ricevere questa risposta anche se per il resto la configurazione dell'app è valida.
Cosa fare
Riprova da un dispositivo fisico su una rete utente normale. Se il traffico originato dal provider è intenzionale, disabilita temporaneamente Blocca le richieste all'infrastruttura del provider nella scheda dell'app Informazioni quindi riabilitala dopo il test. Le nuove app abilitano questa impostazione di default; le app esistenti mantengono la precedente impostazione disabilitata finchÊ non viene modificata.
needPlanUpgrade
Sezione intitolata âneedPlanUpgradeâCosa significa
La tua organizzazione ha raggiunto il limite del piano o dei dispositivi. Il dispositivo non riceverĂ aggiornamenti finchĂŠ non eseguirai l'upgrade o il prossimo ciclo di fatturazione non azzererĂ l'utilizzo.
Cosa fare
Esegui l'upgrade del piano nel dashboard o attendi il prossimo ciclo di fatturazione.
Cosa significa
Il dispositivo ha giĂ l'ultimo bundle disponibile per il suo canale. Si tratta di uno stato normale, non di un errore.
rateLimited
Sezione intitolata ârateLimitedâCosa significa
Il dispositivo ha inviato troppe richieste di aggiornamento o di canale in un breve intervallo di tempo.
Cosa fare
Evita di chiamare le API di update nei loop di render. Chiama setChannel / getChannel solo da azioni utente e imposta defaultChannel nella capacitor.config.
Formato versione
Sezione intitolata âVersion formatâRifiuti del backend causati da metadati di versione nativa non validi.
semver_error
Sezione intitolata âsemver_errorâCosa significa
La versione dell'app nativa nel config è mancante o non è un semver valido (x.y.z).
Cosa fare
Imposta plugins.CapacitorUpdater.version a semver valido, verificalo nel tester SemVer, quindi ricostruisci e reinstalla l'app nativa.
Targeting piattaforma e build
Sezione intitolata âPlatform and build targetingâRifiuti del backend quando la policy del canale blocca una piattaforma, un tipo di build o una classe di dispositivo.
disablePlatformIos
Sezione intitolata âdisablePlatformIosâCosa significa
Il dispositivo esegue iOS, ma gli aggiornamenti iOS sono disabilitati per questo channel.
Cosa fare
Abilita iOS nel canale se l'errore è stato accidentale, oppure instrada le build iOS a un canale dedicato se il blocco è intenzionale.
disablePlatformAndroid
Sezione intitolata âdisablePlatformAndroidâCosa significa
Il dispositivo esegue Android, ma gli aggiornamenti Android sono disabilitati per questo channel.
Cosa fare
Abilita Android nel canale se è stato un errore, oppure indirizza i build Android a un canale dedicato se il blocco è intenzionale.
disablePlatformElectron
Sezione intitolata âdisablePlatformElectronâCosa significa
Il dispositivo esegue Electron, ma gli aggiornamenti Electron sono disabilitati per questo channel.
Cosa fare
Abilita Electron nel canale se è stato un errore, oppure indirizza i build di Electron a un canale dedicato se il blocco è intenzionale.
disableDevBuild
Sezione intitolata âdisableDevBuildâCosa significa
Il dispositivo è una build di sviluppo, ma le dev build sono bloccate per questo canale.
Cosa fare
Consenti build di dev in un canale di test, oppure mantieni questo canale solo per release e sposta i dispositivi di dev altrove.
disableProdBuild
Sezione intitolata âdisableProdBuildâCosa significa
Una build di produzione ha chiamato /updates, ma gli aggiornamenti di produzione sono bloccati per questo canale.
Cosa fare
Consenti aggiornamenti di produzione nel canale se è stato un errore, oppure instrada i build di produzione al canale corretto.
disableDevice
Sezione intitolata âdisableDeviceâCosa significa
Un telefono o tablet reale è stato bloccato perchÊ questo canale blocca i dispositivi reali.
Cosa fare
Abilita gli aggiornamenti per dispositivi reali se è stato un errore, oppure mantieni la restrizione e instrada i dispositivi reali a un altro canale.
disableEmulator
Sezione intitolata âdisableEmulatorâCosa significa
Il dispositivo è un emulatore, ma gli aggiornamenti per gli emulatori sono disabilitati per questo canale.
Cosa fare
Abilita gli aggiornamenti sull'emulatore in un canale di test, oppure mantieni questo canale bloccato per gli emulatori e usane un altro per la validazione.
Regole di compatibilitĂ auto-update
Sezione intitolata âRegole di compatibilitĂ auto-updateâRifiuti dal backend quando le regole semver o i metadati bloccano il bundle di destinazione.
disableAutoUpdate
Sezione intitolata âdisableAutoUpdateâCosa significa
L'auto-update è disabilitato dalla policy di compatibilità del canale. I metadati includono auto_update con una regola corrispondente, ad esempio major, minor, patch, metadata, o none.
Cosa fare
Modifica la policy di auto-update del canale per consentire il rollout previsto.
disableAutoUpdateUnderNative
Sezione intitolata âdisableAutoUpdateUnderNativeâCosa significa
Il canale ha un bundle piĂš vecchio della baseline del dispositivo e blocca l'invio di aggiornamenti sotto la versione nativa.
Cosa fare
Pubblica un bundle pari o superiore alla baseline nativa, oppure disabilita la protezione under-native nel canale.
disableAutoUpdateMetadata
Sezione intitolata âdisableAutoUpdateMetadataâCosa significa
Il canale richiede min_update_version, ma la versione nativa del dispositivo è inferiore a questa soglia.
Cosa fare
Imposta min_update_version sul bundle di destinazione o su un release da una versione nativa piĂš recente.
disableAutoUpdateToMajor
Sezione intitolata âdisableAutoUpdateToMajorâCosa significa
Il canale blocca i salti di versione maggiore, ad esempio 1.x.x a 2.x.x.
Cosa fare
Allinea la strategia del canale al piano di rilascio principale o consenti salti di versione maggiore per questa track. Vedi Problemi comuni di aggiornamento.
disableAutoUpdateToMinor
Sezione intitolata âdisableAutoUpdateToMinorâCosa significa
Il canale blocca i salti di versione minore rispetto alla baseline nativa del dispositivo (version_build), ad esempio 1.2.3 a 1.3.0.
Cosa fare
Allinea la strategia dei canali al tuo piano di rollout, oppure permetti salti di versione minori per questo track.
disableAutoUpdateToPatch
Sezione intitolata âdisableAutoUpdateToPatchâCosa significa
Il canale blocca i cambiamenti a livello di patch mantenendo lo stesso MAJOR.MINOR.PATCH prefisso; sono consentiti solo i cambiamenti del suffisso.
Cosa fare
Allinea la cadenza dei rilasci alla policy del canale, o permetti salti di patch per questo track.
Configurazione del canale
Sezione intitolata âConfigurazione del canaleâRifiuti del backend causati da una configurazione del canale mancante o incompatibile.
cannotUpdateViaPrivateChannel
Sezione intitolata âcannotUpdateViaPrivateChannelâCosa significa
Il dispositivo ha tentato di auto-associarsi a un canale privato che non consente l'auto-assegnazione dei dispositivi (allow_device_self_set è false) e il canale non è pubblico.
Cosa fare
Abilita allow_device_self_set sul canale o passa il dispositivo a un canale pubblico o consentito.
channelMisconfigured
Sezione intitolata âchannelMisconfiguredâCosa significa
Il canale usa disable_auto_update: "version_number" ma il bundle min_update_version è null, quindi Capgo non può decidere quali dispositivi devono aggiornarsi.
Cosa fare
Completa la configurazione mancante per quella regola o passa a una modalitĂ di auto-update piĂš semplice.
NoChannelOrOverride
Sezione intitolata âNoChannelOrOverrideâCosa significa
Nessun canale predefinito è configurato e il dispositivo non ha un override del canale.
Cosa fare
Imposta un canale predefinito nella dashboard o configura defaultChannel nella build.
Consegna e crittografia del bundle
Sezione intitolata âConsegna e crittografia del bundleâRifiuti del backend quando Capgo non riesce a servire o decriptare il bundle.
cannotGetBundle
Sezione intitolata âcannotGetBundleâCosa significa
Capgo non è riuscito a generare un URL di download firmato valido e non era disponibile alcun fallback del manifest.
Cosa fare
Ricarica il bundle, rigenera i manifest e verifica le impostazioni del bundle R2 o pubblico.
missingBundle
Sezione intitolata âmissingBundleâCosa significa
Il bundle assegnato al canale non ha contenuti scaricabili: nessun external_url, nessun r2_path, nessuna versione integrata e nessuna voce nel manifest.
Cosa fare
Ricostruisci e ricarica la versione, poi verifica che il bundle contenga file reali.
keyMismatch
Sezione intitolata âkeyMismatchâCosa significa
La chiave pubblica di crittografia del dispositivo non corrisponde alla chiave utilizzata per crittografare il bundle. I metadati possono includere device_key_id, bundle_key_id, e version.
Cosa fare
Confronta gli ID delle chiavi di dispositivo e bundle nella console. Pubblica con la stessa chiave e versioni corrispondenti di CLI/plugin.
Configurazione app e client legacy
Sezione intitolata âConfigurazione dell'app e client legacyâRifiuti del backend causati dalla configurazione dell'app o da versioni dell'updater non supportate.
customIdBlocked
Sezione intitolata âcustomIdBlockedâCosa significa
L'app ha inviato un ID dispositivo personalizzato, ma questa app non accetta ID personalizzati, quindi l'ID viene ignorato.
Cosa fare
Smetti di inviare ID personalizzati, oppure abilitali solo quando il tuo flusso di lavoro lo richiede.
blocked_by_server_url
Sezione intitolata âblocked_by_server_urlâCosa significa
server.url è impostato nella configurazione di Capacitor, quindi la WebView carica un URL remoto invece dei file bundle locali. Gli aggiornamenti live di Capgo richiedono file locali e server.url è sconsigliato in produzione.
Cosa fare
Rimuovi o svuota server.url per le build di produzione e mantenere i payload degli update locali. Questo code può manifestarsi come un rifiuto del backend o come uno stat lato dispositivo.
backend_refusal
Sezione intitolata âbackend_refusalâCosa significa
Il plugin updater è alla v4, che il backend non accetta piÚ.
Cosa fare
Aggiorna il plugin e CLI alla v5+ (preferibilmente v8) con Capacitor v5+, ricostruisci e ripubblica i metadati del bundle.
Ciclo di vita dell'update
Sezione intitolata âUpdate lifecycleâEventi lato dispositivo per il flusso di aggiornamento normale, l'attivazione e il rollback.
Cosa significa
Azione di test interna utilizzata per verificare la pipeline delle statistiche.
Cosa significa
Capgo ha inviato le informazioni di download per una nuova versione al dispositivo.
Cosa significa
Un bundle è stato attivato sul dispositivo.
Cosa significa
L'attivazione di un bundle sul dispositivo non è riuscita.
Cosa fare
Controlla i log nativi con npx @capgo/cli@latest app debug e verifica l'integritĂ del bundle, i percorsi e notifyAppReady il flusso.
Cosa significa
Il dispositivo è tornato al bundle integrato.
Cosa significa
Un bundle è stato eliminato sul dispositivo.
Errori di download e installazione
Sezione intitolata âDownload and install failuresâEventi lato dispositivo per avanzamento download, validazione archivio e errori di installazione.
download_0
Sezione intitolata âdownload_0âCosa significa
La sequenza di download è iniziata con avanzamento allo 0%.
download_10
Sezione intitolata âdownload_10âCosa significa
Un nuovo bundle è stato scaricato â avanzamento indicato al 10%.
download_20
Sezione intitolata âdownload_20âCosa significa
Un nuovo bundle è stato scaricato â avanzamento al 20%.
download_30
Sezione intitolata âdownload_30âCosa significa
Un nuovo bundle è stato scaricato â avanzamento al 30%.
download_40
Sezione intitolata âdownload_40âCosa significa
Un nuovo bundle è stato scaricato â avanzamento al 40%.
download_50
Sezione intitolata âdownload_50âCosa significa
Un nuovo bundle è stato scaricato â avanzamento al 50%.
download_60
Sezione intitolata âdownload_60âCosa significa
Un nuovo bundle è stato scaricato â progresso al 60%.
download_70
Sezione intitolata âdownload_70âCosa significa
Un nuovo bundle è stato scaricato â progresso al 70%.
download_80
Sezione intitolata âdownload_80âCosa significa
Un nuovo bundle è stato scaricato â progresso all'80%.
download_90
Sezione intitolata âdownload_90âCosa significa
Un nuovo bundle è stato scaricato â progresso al 90%.
download_complete
Sezione intitolata âdownload_completeâCosa significa
Il download del bundle è stato completato con successo.
download_manifest_start
Sezione intitolata âdownload_manifest_startâCosa significa
Il dispositivo ha iniziato a scaricare il manifest dell'aggiornamento.
download_manifest_complete
Sezione intitolata âdownload_manifest_completeâCosa significa
Il dispositivo ha completato il download del manifest dell'aggiornamento.
download_zip_start
Sezione intitolata âdownload_zip_startâCosa significa
Il dispositivo ha iniziato a scaricare l'archivio del bundle.
download_zip_complete
Sezione intitolata âdownload_zip_completeâCosa significa
Il dispositivo ha completato il download dell'archivio del bundle.
download_manifest_file_fail
Sezione intitolata âdownload_manifest_file_failâCosa significa
Il download di un'entry del manifest non è riuscito. version_name usa version:fileName per identificare l'asset.
Cosa fare
Correggi l'asset mancante o bloccato, rigenera il manifest e re-upload del bundle.
download_manifest_checksum_fail
Sezione intitolata âdownload_manifest_checksum_failâCosa significa
Un file manifest non ha superato la convalida del checksum.
Cosa fare
Re-upload del bundle con una versione CLI attuale e verifica i checksum del manifest.
download_manifest_brotli_fail
Sezione intitolata âdownload_manifest_brotli_failâCosa significa
Un file manifest ha fallito la decompressione Brotli.
Cosa fare
Verifica le impostazioni di compressione e ricarica gli asset interessati.
download_fail
Sezione intitolata âdownload_failâCosa significa
Il download del bundle non è riuscito.
Cosa fare
Verifica la connettivitĂ di rete, la scadenza dell'URL firmato, la raggiungibilitĂ del CDN e lo storage del dispositivo.
update_fail
Sezione intitolata âupdate_failâCosa significa
Il bundle è stato installato, ma l'app non ha mai chiamato notifyAppReady, quindi Capgo ha eseguito il rollback.
Cosa fare
Chiama notifyAppReady() dopo che l'app ha completato il bootstrap. Testo del log nativo notifyAppReady was not called, roll back current bundle corrisponde a questo code.
checksum_fail
Sezione intitolata âchecksum_failâCosa significa
Il bundle scaricato non ha superato la convalida del checksum. Cause comuni: discrepanza tra CRC32 e SHA256 da un upload CLI obsoleto, oppure discrepanza della chiave di crittografia su plugin piĂš vecchi che segnalano il fallimento di decrittazione come fallimento del checksum.
Cosa fare
Ricarica con un CLI/plugin aggiornato (SHA256). Se usi la crittografia, verifica che la chiave pubblica dell'app corrisponda alla chiave di upload, oppure aggiorna al plugin 8.3.0+ per errori keyMismatch espliciti.
decrypt_fail
Sezione intitolata âdecrypt_failâCosa significa
Il bundle scaricato non è riuscito a essere decrittato.
Cosa fare
Verifica le chiavi di crittografia e re-upload del bundle con la coppia di chiavi corrispondente.
windows_path_fail
Sezione intitolata âwindows_path_failâCosa significa
Lo zip contiene percorsi in stile Windows non validi.
Cosa fare
Ricostruisci il bundle con percorsi Unix o sanitizza i percorsi dell'archivio prima dell'upload.
canonical_path_fail
Sezione: âcanonical_path_failâCosa significa
I percorsi dei file all'interno dello zip non sono canonici.
Cosa fare
Fix archive path generation before upload.
directory_path_fail
Sezione: âdirectory_path_failâCosa significa
Lo zip contiene percorsi di directory non validi.
Cosa fare
Correggi la struttura dell'archivio prima dell'upload.
unzip_fail
Sezione: âunzip_failâCosa significa
Il dispositivo non è riuscito a decomprimere il bundle scaricato.
Cosa fare
Verifica l'integritĂ dell'archivio e la compressione supportata.
low_mem_fail
Sezione intitolata âlow_mem_failâCosa significa
Download non riuscito perchĂŠ il dispositivo ha esaurito la memoria.
Cosa fare
Riduci la dimensione del bundle o riprova su un dispositivo con piĂš memoria libera.
Stato dell'app e eventi WebView
Sezione intitolata âStato dell'app e eventi WebViewâDiagnostica lato dispositivo per crash, memoria e WebView. Ispeziona sempre il JSON dei metadati nel dashboard.
app_moved_to_background
Sezione intitolata âapp_moved_to_backgroundâCosa significa
L'app è passata in background.
app_moved_to_foreground
Sezione intitolata âapp_moved_to_foregroundâCosa significa
L'app è passata in foreground.
app_crash
Sezione intitolata âapp_crashâCosa significa
Crash del layer JavaScript o Capacitor. I metadati possono includere messaggio, stack, sorgente e contesto del bundle attivo.
Cosa fare
Ispeziona i metadati e i log nativi. Abbina il reporting degli errori JS e nativi (ad esempio Sentry) per individuare il percorso code che fallisce.
app_crash_native
Sezione intitolata âapp_crash_nativeâCosa significa
Crash della piattaforma nativa. I metadati possono includere piattaforma, motivo, stack e dettagli del processo.
Cosa fare
Usa i log di crash di Xcode o Logcat e correlali con il bundle attivo dai metadati.
Cosa significa
Evento Android Application Not Responding.
Cosa fare
Ispeziona i tracciati ANR in Logcat e riduci il lavoro bloccante sul main thread dopo gli aggiornamenti.
app_killed_low_memory
Sezione intitolata âapp_killed_low_memoryâCosa significa
L'OS ha terminato l'app a causa della pressione di memoria.
Cosa fare
Riduci l'uso della memoria dopo l'attivazione dell'aggiornamento e ispeziona i metadati per i segnali di memoria disponibile.
app_killed_excessive_resource_usage
Sezione intitolata âapp_killed_excessive_resource_usageâCosa significa
Il sistema operativo ha chiuso l'app per un uso eccessivo delle risorse.
Cosa fare
Ispeziona i metadati per il tipo di risorsa o la ragione della piattaforma.
app_initialization_failure
Sezione intitolata âapp_initialization_failureâCosa significa
Updater o avvio non riuscito prima che il runtime normale fosse pronto.
Cosa fare
Ispeziona i metadati per il passaggio fallito e il messaggio di errore.
app_memory_warning
Sezione intitolata âapp_memory_warningâCosa significa
Avviso di memoria iOS.
Cosa fare
Ispeziona il contesto di memoria nei metadati e riduci l'utilizzo massimo dopo gli aggiornamenti.
webview_javascript_error
Sezione intitolata âwebview_javascript_errorâCosa significa
Errore JavaScript non gestito nella WebView. I metadati possono includere messaggio, URL di origine, riga, colonna e stack.
Cosa fare
Installa la segnalazione degli errori nei livelli JS e nativo per catturare la riga esatta che fallisce in produzione.
webview_unhandled_rejection
Sezione intitolata âwebview_unhandled_rejectionâCosa significa
Promise rejection non gestita nella WebView.
Cosa fare
Cattura i fallimenti asincroni con la segnalazione degli errori JS e nativi.
webview_resource_error
Sezione intitolata âwebview_resource_errorâCosa significa
A WebView resource failed to load.
Cosa fare
Usa l'URL dei metadati e i dettagli dello stato per correggere asset rotti o regole di rete.
webview_security_policy_violation
Sezione intitolata âwebview_security_policy_violationâCosa significa
La Content Security Policy ha bloccato una risorsa.
Cosa fare
Regola la CSP con la direttiva metadati e i dettagli sull'URI bloccato.
webview_unclean_restart
Sezione intitolata âwebview_unclean_restartâCosa significa
La sessione WebView precedente non si è chiusa correttamente, il che può indicare loop di crash dopo un aggiornamento.
Cosa fare
Correla con gli eventi di crash e errori WebView prima e dopo il riavvio.
webview_render_process_gone
Sezione intitolata âwebview_render_process_goneâCosa significa
Il processo renderer di Android WebView è terminato.
Cosa fare
Ispeziona i segnali di crash del renderer nei metadati e nei log nativi.
webview_content_process_terminated
Sezione intitolata âwebview_content_process_terminatedâCosa significa
Il processo content di iOS WebView è terminato.
Cosa fare
Ispeziona il bundle attivo e l'URL della pagina dai metadati.
Telemetria di avvio e navigazione
Sezione intitolata âTelemetria di avvio e navigazioneâQuesti eventi di timing descrivono il ciclo di vita dell'app. Non garantiscono che tutte le funzionalitĂ funzionino.
app_launch_start
Sezione intitolata âapp_launch_startâCosa significa
L'app ha avviato una misurazione del lancio. Si tratta di un evento normale del ciclo di vita.
app_launch_ready
Sezione intitolata âapp_launch_readyâCosa significa
L'app ha segnalato che era pronta. I metadati di timing aiutano a confrontare l'avvio tra le versioni. Si tratta di un evento normale del ciclo di vita.
app_launch_timeout
Sezione intitolata âapp_launch_timeoutâCosa significa
L'app non ha segnalato la prontezza entro la finestra di misurazione del lancio.
Cosa fare
Ispeziona gli errori di avvio e la timeline del dispositivo. Verifica che l'avvio raggiunga la chiamata di readiness e che la notifyAppReady() dopo che il bootstrap ha esito positivo. Confronta i tempi e gli errori con il bundle precedente prima di modificare le impostazioni di timeout.
webview_dom_content_loaded
Sezione intitolata âwebview_dom_content_loadedâCosa significa
Il WebView ha segnalato il caricamento del contenuto DOM. Si tratta di un evento temporale normale, non di una prova che tutte le risorse o le funzionalitĂ dell'app siano pronte.
webview_page_loaded
Sezione intitolata âwebview_page_loadedâCosa significa
La WebView ha segnalato il caricamento della pagina. Si tratta di un evento temporale normale. Confronta i metadati di durata tra le versioni quando analizzi i caricamenti lenti.
Cosa significa
L'app ha segnalato un evento di navigazione. Si tratta di telemetria normale. I metadati di route e durata consentono confronti per schermata quando l'app li fornisce.
Esiti aggiuntivi dell'updater
Sezione intitolata âRisultati aggiuntivi dell'updaterâCosa significa
Un bundle è stato programmato per l'attivazione al successivo avvio dell'app. La programmazione è normale e non significa che il bundle sia già stato attivato.
channelPaused
Sezione intitolata âchannelPausedâCosa significa
Il canale selezionato è in pausa. Il server non invia aggiornamenti e il dispositivo mantiene il bundle corrente. Questo può essere una policy di rilascio intenzionale.
Cosa fare
Verifica perchÊ il canale è stato messo in pausa e se è sicuro riprendere. Non riprendere un rollout automaticamente solo per silenziare questo evento.
finish_download_fail
Sezione intitolata âfinish_download_failâCosa significa
Il dispositivo non è riuscito a finalizzare un bundle scaricato.
Cosa fare
Ispeziona i metadati e i log nativi per individuare errori di filesystem o di validazione. Verifica lo storage disponibile e l'archivio caricato prima di riprovare.
manifest_path_fail
Sezione intitolata âmanifest_path_failâCosa significa
Il percorso del file manifest non ha superato la validazione o non poteva essere utilizzato durante l'aggiornamento.
Cosa fare
Ispeziona il percorso che fallisce nei log nativi, correggi la struttura dei file del bundle e ricaricalo. Non aggirare la validazione dei percorsi.
checksum_required
Sezione intitolata âchecksum_requiredâCosa significa
L'updater richiede metadati di checksum che mancano per questo download.
Cosa fare
Carica di nuovo il bundle con l'attuale CLI e verifica che i metadati di checksum siano presenti. Non disabilitare i controlli di integritĂ per aggirare l'errore.
insufficient_disk_space
Sezione intitolata âinsufficient_disk_spaceâCosa significa
Il dispositivo non ha spazio di archiviazione sufficiente per l'aggiornamento.
Cosa fare
Libera spazio di archiviazione sul dispositivo, riduci la dimensione del bundle dove possibile e riprova su un dispositivo di test interessato. Questo problema non viene risolto modificando la policy di versione di un channel.
update_check_error
Sezione intitolata âupdate_check_errorâCosa significa
Il controllo dell'aggiornamento non è riuscito. Questo evento da solo non identifica se la causa sia la connettività , la disponibilità del server o un rifiuto specifico della risposta.
Cosa fare
Ispeziona i metadati della risposta e i log nativi circostanti. Verifica la connettivitĂ e l'URL di aggiornamento configurato, quindi consulta eventuali errori backend specifici in Common Update Problems prima di modificare le impostazioni.
Contesto di ambiente e channel
Sezione intitolata âContesto di ambiente e channelâEventi di contesto lato dispositivo per correlare il comportamento degli aggiornamenti con il sistema operativo, la versione nativa o i canali.
os_version_changed
Sezione intitolata âos_version_changedâCosa significa
Device OS version changed between checks.
native_app_version_changed
Sezione intitolata ânative_app_version_changedâCosa significa
Versione dell'app nativa sullo store modificata, utile a distinguere le modifiche tra bundle nativo e web.
getChannel
Sezione intitolata âgetChannelâCosa significa
Il dispositivo ha richiesto il suo canale attuale.
setChannel
Sezione intitolata âsetChannelâCosa significa
Un canale è stato impostato correttamente per il dispositivo.
uninstall
Sezione intitolata âuninstallâCosa significa
L'app è stata disinstallata o i dati Capgo sono stati cancellati.
Stato del bundle
Sezione intitolata âStato del bundleâSUCCESS: installazione bundle completataERROR: installazione o download non riuscitoPENDING: Download completato, rilascio in attesaDELETED: Bundle eliminato, ancora presente per le statisticheDOWNLOADING: Download di un bundle in corso
Comprendere i log del dispositivo
Sezione intitolata âComprendere i log del dispositivoâComando di debug
Sezione intitolata âComando di debugâEsiste un comando di debug per gli utenti cloud di Capgo.
npx @capgo/cli@latest app debugQuesto ti permetterĂ di controllare tutti gli eventi che avvengono nell'app e di trovare una soluzione se gli aggiornamenti non arrivano.
Log nativi iOS
Sezione intitolata âLog nativi iOSâper trovare i log su Xcode
Log nativi Android
Sezione intitolata âLog nativi Androidâper trovare i log su Android Studio
Mappatura delle frasi dei log nativi
Sezione intitolata âMappatura delle frasi dei log nativiâFailed to download fromcorrisponde adownload_failnotifyAppReady was not called, roll back current bundlecorrisponde aupdate_fail
Trovare il bundle scaricato su un dispositivo
Sezione intitolata âTrovare il bundle scaricato su un dispositivoâPer fare il debug su iOS, devi dumpare l'app sul computer. Ecco come:
Xcode ha una funzione integrata per ispezionare il file system delle app installate dagli sviluppatori su un dispositivo iOS.

Per ottenere questo:
- Collega il dispositivo al Mac e seleziona Window > Devices nella barra dei menu di Xcode.
- Seleziona il dispositivo nel pannello sinistro, sotto la sezione Devices.
- VerrĂ visualizzato un elenco delle app installate dagli sviluppatori per quel dispositivo.
- Seleziona l'app che vuoi ispezionare e poi tocca l'icona con i tre punti in basso a destra dello schermo.
- Qui puoi visualizzare il file system corrente selezionando download a snapshot di esso.

Selezionando Download Container⌠si scarica ed esporta uno snapshot del file system come file .xcappdata, che puoi esplorare.

Fai clic destro su questo file e seleziona Show Package Contents per aprire la cartella.
Apri la cartella App Data: ora dovresti vedere alcune cartelle come Documents, Library, tmp, ecc.

Troverai una versione in 2 cartelle:
library/NoCloud/ionic_built_snapshots necessaria dopo il riavvio dell'app
e documents/versions per hot reload
Per fare debug su Android, devi accedere al dispositivo da Android Studio:
- Fai clic su View > Tool Windows > Device File Explorer o sul pulsante Device File Explorer nella barra della tool window per aprire il Device File Explorer.
- Seleziona un dispositivo dall'elenco a discesa.
- Apri il percorso data/data/APP_NAME/ dove APP_NAME è l'ID della tua app.

Poi trova la versions cartella per vedere tutte le versioni
Analizzare i crash log di produzione su iOS
Sezione intitolata âAnalizzare i crash log di produzione su iOSâContinua da Debugging
Sezione intitolata âContinua da DebuggingâSe stai usando Debug per pianificare il lavoro sui plugin nativi, collegalo a Usando @capgo/capacitor-updater per la funzionalitĂ nativa in Usando @capgo/capacitor-updater, Directory dei plugin di Capgo per il workflow del prodotto nella Capgo Plugin Directory, Plugin Capacitor di Capgo per i dettagli di implementazione in Capacitor Plugins di Capgo, Aggiunta o aggiornamento dei plugin per i dettagli su come aggiungere o aggiornare i plugin, e Alternative ai plugin Ionic Enterprise per il workflow del prodotto in Alternative ai plugin Ionic Enterprise.