Problemi di Aggiornamento Comuni
Copia una riga di impostazione con i passaggi di installazione e la guida markdown completa per questo plugin.
Quando un controllo di aggiornamento fallisce, Capgo solitamente restituisce un'Capgo e un error code e un message In questo contesto /updates risposta. Questa pagina spiega le più comuni fallite e le soluzioni più veloci.
Leggi questo prima
Sottosezione intitolata “Leggi questo prima”no_new_version_availableè uno stato normale, non una fallita.- Molti rapporti di "aggiornamento trovato ma non applicato" sono rifiuti di politica/configurazione piuttosto che ritardi di cache, soprattutto quando la risposta include un esplicito
errorcode. - Usa
npx @capgo/cli@latest app debugmentre si riproduce l'errore per visualizzare i dettagli della richiesta/risposta.
Codici di fallita comuni
Sottosezione intitolata “Codici di fallita comuni”provider_infrastructure_request_blocked
Sottosezione intitolata “provider_infrastructure_request_blocked”Causa
L'applicazione ha I richieste di infrastruttura del provider sono bloccate enabled and the request originated from a known Google or Apple datacenter IP range. Capgo blocks these requests on /updates, /stats__CAPGO_KEEP_0__ blocca queste richieste su /channel_self , e
per prevenire il traffico originato dal provider da essere trattato come traffico del dispositivo.
- Risoluzione
- Riproduci l'aggiornamento da un dispositivo fisico su una rete utente normale.
- Non utilizzare probed ospitati in cloud o esecutori di datacenter del provider per le verifiche di aggiornamento, statistiche o channel-self mentre questa protezione è abilitata. Se quel traffico è intenzionale, apri la scheda Informazioni Block provider infrastructure richieste. Riabiliscilo quando il test è completo.
Le nuove app hanno questa protezione abilitata per impostazione predefinita. Le app create prima dell'introduzione di questa impostazione hanno questa funzione disabilitata fino a quando non viene abilitata.
Dettagli della risposta
/updatespreserva il contratto di risposta dell'aggiornatore e restituisce HTTP200. Il suo corpo includeerror,message,kind: "blocked", eprovider("google"o"apple")./statse/channel_selfrisponde con lo stesso errore __CAPGO_KEEP_0__. Considera questo come una politica di blocco intenzionale, non come una condizione di riprova transitoria.429with the same error code. Treat this as an intentional policy block, not a transient retry condition.
disable_auto_update_to_major
oCausa
Il tuo canale blocca gli aggiornamenti principali (disable_auto_update = major) e la versione maggiore del pacchetto di destinazione è superiore alla versione di base del dispositivo.
Sintomo tipico
version: 1.0.8 con old: 0.0.0 significa che il dispositivo segnala la versione di base 0.0.0quindi gli aggiornamenti principali vengono rifiutati.
Come interpretarlo
Il backend confronta le versioni principali utilizzando la versione di base del dispositivo old e il target version.
- Se il target è
1.0.1la versione maggiore di base deve essere1Esempio1.0.0). - Se il target è
10.0.1, il baseline maggiore deve essere10Esempio10.0.0).
Opzione A di risoluzione (consigliata): allinea il baseline maggiore del dispositivo
Imposta plugins.CapacitorUpdater.version in capacitor.config.* così che il suo MAJOR corrisponda al MAJOR del pacchetto che desideri distribuire (ad esempio 1.0.0 per 1.0.1, 10.0.0 per 10.0.1).
Applica quindi questa configurazione all'applicazione installata una volta:
- Esegui
npx cap sync. - Riavvia e reinstalla l'applicazione nativa.
Opzione di risoluzione B: rilassa la politica del canale
Consenti gli aggiornamenti automatici intercanale (solo se questa strategia di distribuzione è intenzionale).
Documentazione correlata:
- Target di versione: Disabilita l'aggiornamento automatico tra versioni maggiori
- Canali: Disabilita le strategie di aggiornamento automatico
disable_auto_update_to_minor / disable_auto_update_to_patch
Sezione intitolata “disabilita_aggiornamento_auto_minore / disabilita_aggiornamento_auto_patch”Causa
La politica del canale è più restrittiva (minor o patchdi più dell'aggiornamento offerto.
minorblocca quando il bundle di destinazione ha un numero maggiore o minore del baseline nativo del dispositivo (version_buildesempio:1.2.3 -> 1.3.0è bloccato.patchblocca qualsiasi cambiamento di numero maggiore, minore o patch daversion_buildSolo i cambiamenti di suffisso sono consentiti mentreMAJOR.MINOR.PATCHrimane identico, come1.0.0-beta.1 -> 1.0.0-beta.2o1.0.0+build.1 -> 1.0.0+build.2.
alternativa:
- Risolvere
- change channel policy in dashboard/CLI.
modificare la politica del canale nel dashboard/__CAPGO_KEEP_0__.
disable_auto_update_to_metadata
Sezione intitolata “disable_auto_update_to_metadata”Causa
Il canale utilizza la targeting basata sui metadati (version_number) e la versione del dispositivo è inferiore a quella richiesta min_update_version.
Soluzione
- Allinea la versione del dispositivo (
CapacitorUpdater.version) con la versione dell'app nativa installata, o - adatta
min_update_version) la strategia del canale.
Documenti correlati:
disable_auto_update_under_native
Sezione intitolata “disabilita_aggiornamento_auto_under_native”Causa
Il canale impedisce le discese sotto la linea di base nativa.
Soluzione
- Incarica una versione del pacchetto maggiore o uguale alla linea di base nativa, o
- disabilita la protezione dal downgrade per canali ‘under native’ per quel canale.
Documenti correlati:
cannot_update_via_private_channel
Sezione intitolata “non è possibile aggiornare tramite canale privato”Causa
Il canale selezionato/predefinito non consente l'assegnazione di dispositivo da parte del dispositivo.
Soluzione
- Usa un canale diverso con l'assegnazione auto abilitata, o
- rendi il canale pubblico / abilita l'assegnazione auto.
Documenti correlati:
unknown_version_build / semver_error
Sottosezione intitolata “unknown_version_build / semver_error”Causa
La versione di base del dispositivo è mancante (unknown) o non valida semver.
Soluzione
- Imposta
plugins.CapacitorUpdater.versiona semver valido come1.2.3. - Sincronizza e ricostruisci l'applicazione nativa.
Documenti correlati:
unsupported_plugin_version
Sottosezione intitolata “versione_plugin_non_supportata”Causa
La versione del plugin Updater è troppo vecchia per le richieste attuali del backend.
Soluzione
- Aggiorna
@capgo/capacitor-updater. - Esegui
npx cap sync. - Riavvia e reinstalla l'app nativa.
disabled_platform_ios / disabled_platform_android
Sezione intitolata “disabled_platform_ios / disabled_platform_android”Causa
Il canale ha le aggiornamenti disabilitati per quella piattaforma.
Soluzione
- Abilita il pulsante di opzione per la piattaforma sul canale.
disable_prod_build / disable_dev_build / disable_device / disable_emulator
Sezione intitolata “disable_prod_build / disable_dev_build / disable_device / disable_emulator”Causa
Il canale non consente il tipo di build corrente o il target di runtime.
Soluzione
- Assicurati che le opzioni del canale siano allineate con il tuo target di test.
allow_prod,allow_dev,allow_device,allow_emulatorRiavvia e reinstalla l'app nativa.
key_id_mismatch
Sezione intitolata “key_id_mismatch”Causa
La chiave di crittografia del bundle e la chiave del dispositivo differiscono.
Soluzione
- Usa la stessa chiave di crittografia/chiave pubblica in entrambi i flussi di configurazione dell'app e crittografia del bundle.
no_channel / null_channel_data
Sezione intitolata “no_channel / null_channel_data”Causa
Non è stato risolto alcun canale valido per il dispositivo.
Soluzione
- Imposta un canale di default in cloud, o
- imposta
defaultChannelin costruzioni di test, o - assegna canale di override per dispositivo.
Documenti correlati:
on_premise_app
SezioniCausa
Il backend ha restituito HTTP 429 con on_premise_appCiò accade in tre situazioni:
- L'ID dell'app non esiste in Capgo — il
app_idinviato dal dispositivo non è registrato, quindi il backend non ne ha alcun record. - L'app è segnalata come on-premise — l'app esiste ma è configurata per aggiornamenti self-hosted, quindi il cloud endpoint Capgo rifiuta di servirla.
- Problemi comuni — l'organizzazione dell'app non ha più una sottoscrizione attiva.
Errore comune
Un errore di ortografia in plugins.CapacitorUpdater.appId (in capacitor.config.ts) or a mismatch with the app ID registered in the Capgo dashboard. The backend cannot distinguish “unknown app” from “on-premise app”, so it returns the same error code.
Il backend non può distinguere tra 'app sconosciuta' e 'app on-premise', quindi restituisce lo stesso errore __CAPGO_KEEP_1__.
- Risoluzione
app_idmatches exactly what is shown in the Capgo dashboard (case-sensitive). - corrisponda esattamente a quanto mostrato nel dashboard __CAPGO_KEEP_0__ (con sensibilità di caso).
npx @capgo/cli@latest app add. - Se l'app non è ancora registrata, esegui
plugins.CapacitorUpdater.updateUrlto your self-hosted update endpoint instead of the Capgo cloud URL. - Se il piano di organizzazione è scaduto, rinnova o aggiorna il piano.
Elenco di controllo rapido diagnostico
Sezione intitolata “Elenco di controllo rapido diagnostico”- Conferma che l'ID dell'app e il canale sono corretti per la build.
- Conferma
CapacitorUpdater.versioncorrisponde alla versione dell'app nativa installata. - Conferma che la politica del canale (
disable_auto_update) corrisponde alla distribuzione prevista. - Conferma che i pulsanti di toggling della piattaforma/build consentono a questo dispositivo.
- Esegui
npx @capgo/cli@latest app debuge leggi gli errori backend code.
Hai bisogno di più aiuto?
Se hai bisogno di ulteriore aiuto?Continua da Problemi di Aggiornamento Comuni
Sottotitolo: Continua da Problemi di Aggiornamento ComuniSe stai utilizzando Problemi di Aggiornamento Comuni per pianificare il lavoro del plugin nativo, connettilo con Utilizzando @capgo/capacitor-aggiornatore per la capacità nativa in Utilizzando @capgo/capacitor-aggiornatore, Capgo Directory del Plugin per il flusso di lavoro del prodotto in Capgo Directory del Plugin, Capacitor Plugin da Capgo per il dettaglio di implementazione in Capacitor Plugin da Capgo Aggiunta o Aggiornamento di Plugin per il dettaglio di implementazione in Aggiunta o Aggiornamento di Plugin, e Sostituti di Plugin Enterprise Ionic per il flusso di lavoro del prodotto in Sostituti di Plugin Enterprise Ionic.