Saltare al contenuto

Problemi di Aggiornamento Comuni

GitHub

Quando un controllo di aggiornamento fallisce, Capgo di solito restituisce un error code e un message nel /updates risposta. Questa pagina spiega le più comuni fallite e le soluzioni più veloci.

  • 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'espressione esplicita error code.
  • Usa npx @capgo/cli@latest app debug Mentre si riproduce il problema per visualizzare i dettagli della richiesta/risposta.

Causa

L'applicazione ha Blocca le richieste di infrastruttura del provider abilitato e la richiesta è originata da un indirizzo IP di un datacenter Google o Apple noto. Capgo blocca queste richieste su /updates, /stats, e /channel_self evitare il traffico generato dal provider di essere trattato come traffico del dispositivo.

Risoluzione

  • Riprodurre l'aggiornamento da un dispositivo fisico su una rete utente normale.
  • Non utilizzare sensori o esecutori di provider ospitati in cloud per aggiornamenti, statistiche o verifiche di canale-self mentre questa protezione è attiva.
  • Se quel traffico è intenzionale, apri la scheda Informazioni e disabilita Blocca le richieste di infrastruttura del provider. Riabilita quando il test è completo.

Gli app appena create hanno questa protezione abilitata di default. Le app create prima dell'introduzione della impostazione mantengono disabilitata fino a quando non l'abiliti.

Dettagli della risposta

  • /updates preserva il contratto di risposta dell'aggiornatore e restituisce HTTP 200La sua body include error, message, kind: "blocked", e provider ("google" o "apple").
  • /stats and /channel_self ritorna HTTP 429 Con lo stesso errore code. Trattalo come un blocco di politica intenzionale, non come una condizione di riprova transitoria.

Cause

Il tuo canale blocca gli aggiornamenti principali ("disable_auto_update = major) e il numero maggiore del bundle è superiore alla versione di base del dispositivo.

Sintomo tipico

version: 1.0.8 with old: 0.0.0 riferisce il dispositivo il livello di base 0.0.0Aggiornamenti principali rifiutati.

Come interpretarlo

Il backend confronta le versioni maggiori utilizzando il dispositivo di riferimento old e il target version.

  • Se il target è 1.0.1, il valore di base maggiore deve essere 1 ad esempio 1.0.0).
  • Se il target è 10.0.1, il valore di base maggiore deve essere 10 ad esempio 10.0.0).

Aggiorna opzione A (consigliata): allinea baseline maggiore del dispositivo

Installa plugins.CapacitorUpdater.version in capacitor.config.* così MAJOR corrisponde al bundle MAJOR che desideri distribuire (ad esempio 1.0.0 per 1.0.1, 10.0.0 per 10.0.1).

Applica quindi questa configurazione all'app installata una volta.

  1. Esegui npx cap sync.
  2. Riavvia e reinstalla l'app nativa.

Rilassare la politica del canale B

Consenti aggiornamenti automatici inter-major nel menu Impostazioni del canale (solo se questa strategia di distribuzione è intenzionale).

Documenti correlati:

Causa

La politica del canale è più restrittiva (minor o patchpiuttosto che l'aggiornamento offerto.

  • minor blocks when the target bundle has a different major or minor than the device native baseline (version_build). Example: 1.2.3 -> 1.3.0 .
  • patch blocca qualsiasi cambiamento di numero di versione maggiore, minore o di patch version_build. Solo le modifiche di suffisso sono consentite mentre MAJOR.MINOR.PATCH rimane identico, come 1.0.0-beta.1 -> 1.0.0-beta.2 o 1.0.0+build.1 -> 1.0.0+build.2.

Risolvi

  • Carica un pacchetto compatibile con la politica corrente, o
  • modifica la politica del canale nel dashboard/CLI.

Documenti correlati:

Causa

Canale utilizza la targeting basato sui metadati ("version_numbere il livello di dispositivo è inferiore a quello richiesto min_update_version.

Risolvi

  • Allinea dispositivo di riferimento ("CapacitorUpdater.version) con la versione dell'applicazione nativa installata, o
  • adatta min_update_version la strategia del canale.

Documenti correlati:

Causa

Il canale impedisce le retrogradazioni sotto la linea di base nativa.

Risolvi

  • Carica una versione del pacchetto maggiore o uguale al livello di base nativo, o
  • disabilita la protezione del downgrade "nativo" per quel canale.

Documenti correlati:

Causa

Il canale selezionato/predefinito non consente l'assegnazione automatica del dispositivo.

Soluzione

  • Utilizza un canale diverso con l'assegnazione automatica abilitata, o
  • rendi il canale pubblico / abilita l'assegnazione automatica.

Documenti correlati:

Cause

Versione di base del dispositivo mancante ("unknown) o non valid semver.

Fix

  • Soluzione plugins.CapacitorUpdater.version Imposta valid semver like 1.2.3.
  • Ripristina e ricostruisci l'app nativa.

Documenti correlati:

Causa

La versione del plugin Updater è troppo vecchia per le richieste attuali del backend.

Soluzione

  • Aggiornamento @capgo/capacitor-updater.
  • Esegui npx cap sync.
  • Riavvia e reinstalla l'app nativa.

Causa

La canale ha le aggiornamenti disabilitati per quella piattaforma.

Soluzione

  • Abilita il pulsante di piattaforma sul canale.

Causa

Il canale non consente il tipo di build corrente o il target runtime.

Soluzione

  • Assicurati che le opzioni del canale (allow_prod, allow_dev, allow_device, allow_emulator) con il tuo test target.

Causa

Bundle encryption key and device key differ.

Soluzione

  • Usa la stessa chiave di crittografia/chiave pubblica in app config e workflow di crittografia del bundle.

Causa

Non è stato risolto alcun canale valido per il dispositivo.

Risoluzione

  • Imposta un canale di default cloud, o
  • imposta defaultChannel in edizioni di test, o
  • Assegna canale di override per dispositivo.

Documenti correlati:

Causa

La backend ha restituito HTTP 429 con on_premise_app. Ciò accade in tre situazioni:

  1. ID dell'app non esiste in Capgo — il app_id invia dal dispositivo non è registrato, quindi la backend non ne ha alcun record.
  2. L'app è segnalata come on-premise — l'applicazione esiste ma è configurata per aggiornamenti self-hosted, quindi il Capgo endpoint cloud rifiuta di servirla.
  3. cloud endpoint rifiuta di servirla. Il piano di abbonamento dell'organizzazione è stato annullato

Errore comune

Errore comune plugins.CapacitorUpdater.appId (in capacitor.config.tso un disallineamento con l'ID dell'app registrata nel dashboard Capgo. Il backend non può distinguere l' 'applicazione sconosciuta' dall' 'applicazione on-premise', quindi restituisce lo stesso errore code.

Risolvi

  • Verifica il app_id corrisponde esattamente a quanto mostrato nel dashboard Capgo (case-sensitive).
  • Se l'app non è ancora registrata, esegui npx @capgo/cli@latest app add.
  • Se l'app è intenzionalmente on-premise, impostare plugins.CapacitorUpdater.updateUrl al tuo endpoint di aggiornamento self-hosted al posto dell'URL cloud Capgo.
  • Se il piano di organizzazione è scaduto, rinnova o aggiorna il piano.
  1. Conferma l'ID dell'app e il canale sono corretti per la build.
  2. Conferma CapacitorUpdater.version corrisponde alla versione nativa dell'app installata.
  3. Conferma politica del canale (disable_auto_updateCorrisponde al rilascio previsto.
  4. Conferma le impostazioni di piattaforma/compilazione consentono questo dispositivo.
  5. Esegui npx @capgo/cli@latest app debug e leggi l'errore del backend code.

Hai bisogno di ulteriore aiuto?

Aiuto ulteriore necessario?

Continua dall'elenco dei Problemi di Aggiornamento Comuni

Problemi comuni di aggiornamento: continua

Se stai utilizzando Problemi di Aggiornamento Comuni per pianificare il lavoro di plugin nativi, connettilo con Utilizzando @capgo/capacitor-aggiornatore per la capacità nativa in Utilizzando @capgo/capacitor-aggiornatore Capgo Directory dei Plugin per il workflow del prodotto nella cartella del Plugin Capgo. Capacitor Plugin da Capgo per la dettaglio di implementazione in Capacitor Plugin da Capgo Aggiungere o Aggiornare i Plugin per la dettaglio di implementazione in Aggiungere o Aggiornare i Plugin, e Alternative per Plugin Enterprise di Ionic per il flusso di lavoro del prodotto in Plugin Enterprise Ionic Alternativi.