Passer au contenu

Problèmes de mise à jour courants

GitHub

Lorsqu'une vérification de mise à jour échoue, Capgo renvoie généralement un error et un code message dans le /updates la réponse. Cette page décrit les échecs les plus courants et les solutions 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/ configuration plutôt que du retard 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 demande/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 »

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 de sondes hébergées par le cloud ou de lanceurs de centre de données du fournisseur pour les mises à jour, les statistiques ou les vérifications de canal-self pendant que cette protection est activée. Si ce trafic est intentionnel, ouvrez la Informations Infrastructure des fournisseurs de blocs demande de requêtes. 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 la réponse

  • /updates préservent le contrat de réponse de l'actualiseur et renvoient HTTP 200. Son corps comprend error, message, kind: "blocked", et provider ("google" ou "apple").
  • /stats context : Fragment de texte HTML d'une chaîne de Capgo UI 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. Vu dans : page alternatives.astro. Conservez les termes de produit et de marque de Capgo ainsi que les termes de développeur exactement. Clé de message `alternatives_cta_questions` (Questions de CTA Alternatives). | Fragment de texte HTML d'une chaîne de Capgo UI plus longue (clé parente `appflow_cta_questions`). Page/zone : Copie de marketing de comparaison/migration d'Appflow. Rôle : Paragraphe marketing ou juridique long. Vu dans : page ionic-appflow.astro. Conservez les termes de produit et de marque de Capgo ainsi que les termes de développeur exactement. Clé de message `appflow_cta_questions` (Questions de CTA Appflow). | Fragment de texte HTML d'une chaîne de Capgo UI plus longue (clé parente `capwesome_cta_questions`). Page/zone : Page de comparaison de Capawesome. Rôle : Paragraphe marketing ou juridique long. Vu dans : page capwesome.astro. Conservez les termes de produit et de marque de Capgo ainsi que les termes de développeur exactement. Clé de message `capwesome_cta_questions` (Questions de CTA Capwesome). | Page/zone : Page de services de conseil. Rôle : Sous-titre ou tagline de section. Vu dans : page consulting.astro. Conservez les termes de produit et de marque de Capgo ainsi que les termes de développeur exactement. Clé de message `consulting_faq_subtitle` (Sous-titre FAQ de conseil). | Page/zone : Copie de marketing de comparaison/migration d'Appflow. Rôle : Étiquette de navigation ou élément de navigation court. Vu 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). /channel_self et 429 with the same error code. Treat this as an intentional policy block, not a transient retry condition.

Cause

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.0donc 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 le cas 1.0.1la 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 avec 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 dé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 une fois :

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

Option de correction B : assouplir la politique de canal

Autorisez les mises à jour automatiques inter-canaux dans les paramètres de canal (seulement si cette stratégie de déploiement 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 une version majeure ou mineure différente de la ligne de base native du dispositif (version_buildExemple : 1.2.3 -> 1.3.0 est bloqué.
  • patch se bloque pour tout changement de 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.

contexte : 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. Vu 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 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. Vu 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 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. Vu 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 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. Vu 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 FAQ de conseil). | Page/zone : page de comparaison/migration d'Appflow. Rôle : étiquette de navigation ou élément de navigation court. Vu 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_number) et la version de base du dispositif est inférieure à la version requise min_update_version.

Solution

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

Documents liés :

Cause

Le canal empêche les régressions en dessous du seuil natif.

Fix

  • Téléchargez une version de bundle supérieure ou égale au seuil natif, ou
  • désactivez la protection de régression sous natif pour ce canal.

Documents liés :

Cause

Le canal sélectionné/par défaut ne permet pas l'attribution automatique de l'appareil.

Fix

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

Documents connexes :

Cause

La version de base du périphérique est manquante (unknown) ou non valide semver.

Résolution

  • Définissez plugins.CapacitorUpdater.version à une version semver valide comme 1.2.3.
  • Synchronisez et reconstruirez l'application native.

Documents liés :

Cause

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

Résoudre

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

Cause

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

Fix

  • 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 »

Cause

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

Fix

  • Aligner les options du canal (allow_prod, allow_dev, allow_device, allow_emulator)

Cause

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.

Cause

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
  • attribuez un canal personnalisé pour le dispositif.

Documents liés :

on_premise_app

Documents liés :

Sections intitulées « on_premise_app »

Cause on_premise_appLe serveur backend a renvoyé le code 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 le dispositif 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 à jour 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 courants de mise à jour

Section intitulée « Continuez d'ici les problèmes courants de mise à jour »

Si vous utilisez Problèmes courants de mise à jour 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 des plugins pour le flux de travail du produit dans Capgo Répertoire des plugins 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 Entreprise Ionic pour le flux de travail du produit dans Alternatives de Plugins Entreprise Ionic.