Passer à la navigation principale

Problèmes d'actualisation courants

GitHub

Lorsqu'une vérification de mise à jour échoue, Capgo renvoie généralement un error code and a message dans le /updates la réponse. Cette page décrit les échecs les plus courants et les corrections les plus rapides.

  • no_new_version_available est un état normal, pas un échec.
  • Beaucoup de rapports « mise à jour trouvée mais non appliquée » sont des refus de politique/ de configuration plutôt que des retards de cache, surtout lorsque la réponse inclut un error code.
  • tandis que vous reproduisez le problème pour voir les détails de la requête/réponse. npx @capgo/cli@latest app debug Codes d'échec courants

Titre de la section « Codes d'échec courants »

Titre de la section « provider_infrastructure_request_blocked »

provider_infrastructure_request_blocked

__CAPGO_KEEP_0__

Cause

L'application a Empêche les requêtes d'infrastructure du fournisseur enabled and the request originated from a known Google or Apple datacenter IP range. Capgo blocks these requests on /updates, /stats__CAPGO_KEEP_0__ bloque ces requêtes sur /channel_self , et

pour empêcher le trafic provenant du fournisseur d'être traité comme trafic de périphérique.

  • Fix
  • Réproduisez l'actualisation à partir d'un appareil physique sur un réseau utilisateur normal.
  • N'utilisez pas les sondes hébergées par le cloud ou les exécutants de centre de données du fournisseur pour les vérifications de l'actualiseur, des statistiques ou de la chaîne self pendant que cette protection est activée. Si ce trafic est intentionnel, ouvrez la Informations Infrastructure des fournisseurs de blocs demande. Réactivez-le lorsque le test est terminé.

Les nouvelles applications ont cette protection activée par défaut. Les applications créées avant que le paramètre ne soit introduit gardent cela désactivé jusqu'à ce que vous l'activiez.

Détails de réponse

  • /updates préservant le contrat de réponse de l'actualiseur et renvoyant HTTP 200. Son corps inclut error, message, kind: "blocked", et provider ("google" ou "apple").
  • /stats context : Fragment de texte HTML d'une chaîne de dialogue Capgo plus longue (clé parente `alternatives_cta_questions`). Page/zone : Page de comparaison des alternatives de mise à jour en direct de Capacitor. Rôle : Paragraphe marketing ou juridique long. Voir : page alternatives.astro. Conservez les termes de produit/branche et les termes de développeur de Capgo exactement. Clé de message `alternatives_cta_questions` (Questions de CTA Alternatives). | Fragment de texte HTML d'une chaîne de dialogue Capgo plus longue (clé parente `appflow_cta_questions`). Page/zone : Comparaison/migration de marketing de Appflow. Rôle : Paragraphe marketing ou juridique long. Voir : page ionic-appflow.astro. Conservez les termes de produit/branche et les termes de développeur de Capgo exactement. Clé de message `appflow_cta_questions` (Questions de CTA Appflow). | Fragment de texte HTML d'une chaîne de dialogue Capgo plus longue (clé parente `capwesome_cta_questions`). Page/zone : Page de comparaison de Capawesome. Rôle : Paragraphe marketing ou juridique long. Voir : page capwesome.astro. Conservez les termes de produit/branche et les termes de développeur de Capgo exactement. Clé de message `capwesome_cta_questions` (Questions de CTA Capwesome). | Fragment de texte HTML d'une chaîne de dialogue Capgo plus longue (clé parente `consulting_faq_subtitle`). Page/zone : Page de services de conseil. Rôle : Sous-titre ou tagline de section. Voir : page consulting.astro. Conservez les termes de produit/branche et les termes de développeur de Capgo exactement. Clé de message `consulting_faq_subtitle` (Sous-titre FAQ de conseil). | Page/zone : Comparaison/migration de marketing de Appflow. Rôle : Étiquette de navigation ou élément de navigation court. Voir : page ionic-appflow.astro, page ionic-enterprise-plugins.astro, page solutions/ionic-enterprise-plugins.astro. Clé de message `appflow_plugins_or` (Appflow Plugins ou). /channel_self et 429 with the same error code. Treat this as an intentional policy block, not a transient retry condition.

Problème

Votre canal bloque les mises à jour majeures (disable_auto_update = major) et la version majeure du bundle cible est supérieure à la version de base du dispositif.

Symptôme typique

version: 1.0.8 avec old: 0.0.0 signifie que le dispositif signale la version de base 0.0.0, donc les mises à jour majeures sont rejetées.

Comment l'interpréter

Le backend compare les versions majeures en utilisant la version de base du dispositif old et le cible version.

  • Si c'est 1.0.1, la version majeure de la base doit être 1 (par exemple) 1.0.0).
  • Si la cible est 10.0.1, la version majeure de base doit être 10 (par exemple) 10.0.0).

Option de correction A (recommandée) : aligner la version majeure du dispositif sur la version majeure de base

Définir plugins.CapacitorUpdater.version en capacitor.config.* de sorte que sa MAJOR correspond à la version majeure du paquet que vous souhaitez livrer (par exemple) 1.0.0 pour 1.0.1, 10.0.0 pour 10.0.1).

Appliquez ensuite cette configuration à l'application installée :

  1. Exécutez npx cap sync.
  2. Rebâtissez et réinstallez l'application native.

Option de réparation B : relâchez la politique de canal

Autorisez les mises à jour automatiques transversales entre versions majeures dans les paramètres de canal (seulement si cette stratégie de lancement est intentionnelle).

Documents connexes :

disable_auto_update_to_minor / disable_auto_update_to_patch

Section intitulée « disable_auto_update_to_minor / disable_auto_update_to_patch »

Cause

La politique de canal est plus stricte (minor ou patchest supérieur à l'actualisation proposée.

  • minor se bloque lorsque le bundle cible a un numéro majeur ou mineur différent du niveau de base natif du dispositif (version_buildExemple : 1.2.3 -> 1.3.0 est bloqué.
  • patch se bloque pour toute modification du numéro majeur, mineur ou de patch de version_buildSeuls les changements de suffixe sont autorisés tandis que MAJOR.MINOR.PATCH reste identique, comme 1.0.0-beta.1 -> 1.0.0-beta.2 ou 1.0.0+build.1 -> 1.0.0+build.2.

context : fragment de texte HTML d'une chaîne de dialogue Capgo plus longue (clé parente `alternatives_cta_questions`). Page/zone : page de comparaison des alternatives de mise à jour en direct de Capacitor. Rôle : paragraphe marketing ou juridique long. Voir dans : page alternatives.astro. Conservez les termes de produit et de marque Capgo ainsi que les termes de développeur exactement. Clé de message `alternatives_cta_questions` (Questions de CTA pour les alternatives). | Fragment de texte HTML d'une chaîne de dialogue Capgo plus longue (clé parente `appflow_cta_questions`). Page/zone : page de comparaison/migration de Appflow. Rôle : paragraphe marketing ou juridique long. Voir dans : page ionic-appflow.astro. Conservez les termes de produit et de marque Capgo ainsi que les termes de développeur exactement. Clé de message `appflow_cta_questions` (Questions de CTA pour Appflow). | Fragment de texte HTML d'une chaîne de dialogue Capgo plus longue (clé parente `capwesome_cta_questions`). Page/zone : page de comparaison de Capawesome. Rôle : paragraphe marketing ou juridique long. Voir dans : page capwesome.astro. Conservez les termes de produit et de marque Capgo ainsi que les termes de développeur exactement. Clé de message `capwesome_cta_questions` (Questions de CTA pour Capwesome). | Fragment de texte HTML d'une chaîne de dialogue Capgo plus longue (clé parente `consulting_faq_subtitle`). Page/zone : page de services de conseil. Rôle : sous-titre ou tagline de section. Voir dans : page consulting.astro. Conservez les termes de produit et de marque Capgo ainsi que les termes de développeur exactement. Clé de message `consulting_faq_subtitle` (Sous-titre des questions fréquentes de conseil). | Page/zone : page de comparaison/migration de Appflow. Rôle : étiquette de navigation ou élément de navigation court. Voir dans : page ionic-appflow.astro, page ionic-enterprise-plugins.astro, page solutions/ionic-enterprise-plugins.astro. Clé de message `appflow_plugins_or` (Appflow Plugins ou).

  • Fixer
  • change channel policy in dashboard/CLI.

modifier la politique de canal dans le tableau de bord/__CAPGO_KEEP_0__.

Cause

Le canal utilise une ciblage basé sur les métadonnées (« )version_numberet la version de base du dispositif est inférieure à la version requise min_update_version.

Solution

  • Aligner la version de base du dispositif (« )CapacitorUpdater.versionavec la version native de l'application installée, ou
  • ajuster min_update_version la stratégie du canal.

Documents connexes :

La cause

Le canal empêche les dégradations en dessous du seuil natif.

La solution

  • Charger une version de bundle supérieure ou égale au seuil natif, ou
  • empêcher la protection de dégradation sous le canal natif.

Documents liés :

La cause

Le canal sélectionné ou par défaut ne permet pas l'attribution automatique du dispositif.

La solution

  • Utilisez un canal différent avec l'auto-assignement activé, ou
  • rendez le canal public / activez l'auto-assignement.

Documents liés :

Cause

La version de base du dispositif est manquante (unknown) ou non valide semver.

Résoudre

  • Définissez plugins.CapacitorUpdater.version à une version semver valide comme 1.2.3.
  • Synchro et reconstruction de l'application native.

Documents liés :

Cause

La version du plugin de mise à jour est trop ancienne pour les exigences actuelles du serveur.

Solution

  • Mettre à jour @capgo/capacitor-updater.
  • Exécuter npx cap sync.
  • Reconstruire et réinstaller l'application native.

La cause

Le canal a désactivé les mises à jour pour cette plateforme.

La solution

  • Activer l'option de la plateforme sur le canal.

disable_prod_build / disable_dev_build / disable_device / disable_emulator

Section intitulée « disable_prod_build / disable_dev_build / disable_device / disable_emulator »

La cause

Le canal interdit le type de build actuel ou le cible de runtime.

La solution

  • Alignez les options du canal (« allow_prod, allow_dev, allow_device, allow_emulator) » avec votre cible de test.

Causes

La clé de chiffrement du bundle et la clé du dispositif diffèrent.

Solution

  • Utilisez la même clé de chiffrement/clé publique dans la configuration de l'application et le flux de chiffrement du bundle.

Causes

Aucun canal valide n'a été résolu pour le dispositif.

Solution

  • Définissez un canal par défaut dans le cloud, ou
  • fixez defaultChannel en builds de test, ou
  • assigner le canal de substitution pour appareil.

Documents liés :

Sous-section intitulée « on_premise_app »

Cause on_premise_appLe serveur de backend a renvoyé HTTP 429 avec

  1. App ID does not exist in Capgo L'ID de l'application n'existe pas dans __CAPGO_KEEP_0__ app_id — le
  2. envoyé par l'appareil n'est pas enregistré, donc le serveur n'a pas de dossier sur lui. — the app exists but is configured for self-hosted updates, so the Capgo cloud endpoint refuses to serve it.
  3. Le plan d'organisation est annulé — l'organisation de l'application n'a plus d'abonnement actif.

Erreur fréquente

Une faute d'orthographe dans plugins.CapacitorUpdater.appId (dans 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.

Le backend ne peut pas distinguer « application inconnue » de « application sur site », il retourne donc le même erreur __CAPGO_KEEP_1__.

  • Correction app_id matches exactly what is shown in the Capgo dashboard (case-sensitive).
  • correspond exactement à ce qui est affiché dans le tableau de bord __CAPGO_KEEP_0__ (sensibilité à la casse). npx @capgo/cli@latest app add.
  • Si l'application n'est pas encore enregistrée, exécutez plugins.CapacitorUpdater.updateUrl to your self-hosted update endpoint instead of the Capgo cloud URL.
  • Si le plan d'organisation a expiré, renouvelez ou mettez à niveau le plan.
  1. Confirmez que l'ID de l'application et le canal sont corrects pour la build.
  2. Confirmez CapacitorUpdater.version correspond à la version de l'application native installée.
  3. Confirmez que la politique du canal («disable_auto_update) correspond à la mise en œuvre prévue.
  4. Confirmez que les paramètres de plateforme/ build ciblent ce dispositif.
  5. Exécutez npx @capgo/cli@latest app debug et lisez les erreurs de backend code.

Continuez d'ici les problèmes d'actualisation courants

Section intitulée “Continuez d'ici les problèmes d'actualisation courants”

Si vous utilisez Problèmes d'actualisation courants pour planifier le travail de plugin natif, connectez-l’avec En utilisant @capgo/capacitor-mises-à-jour pour la capacité native dans En utilisant @capgo/capacitor-mises-à-jours Capgo Répertoire de plugin pour le flux de travail du produit dans Capgo Répertoire de plugin, Capacitor Plugins par Capgo pour le détail d'implémentation dans Capacitor Plugins par Capgo Ajouter ou Mettre à Jour des Plugins pour le détail d'implémentation dans Ajouter ou Mettre à Jour des Plugins, et Alternatives de Plugins Ionic Entreprise pour le flux de travail du produit dans Alternatives de Plugins Ionic Entreprise.