Passer à la navigation

Problèmes de mise à jour courants

GitHub

Lorsqu'un contrôle de mise à jour échoue, Capgo renvoie généralement un error code et un message dans la /updates réponse. Cette page explique 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/ configuration plutôt que du retard de cache, surtout lorsqu'il y a une réponse explicite error code
  • Utiliser npx @capgo/cli@latest app debug en reproduisant le problème pour voir les détails de la requête/réponse

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 rapporte un seuil de base 0.0.0, donc les mises à jour majeures sont rejetées.

Comment l'interpréter

Le serveur backend compare les versions majeures en fonction du seuil de base du dispositif old et cible version.

  • Si la cible est 1.0.1, le seuil de base majeur doit être 1 (par exemple 1.0.0).
  • Si la cible est 10.0.1, le seuil de base majeur doit être 10 (par exemple 10.0.0).

Option de correction A (recommandée) : aligner le seuil de base majeur du dispositif

Configure plugins.CapacitorUpdater.version pour que son capacitor.config.* MAJOR correspond à la version MAJOR du bundle que vous souhaitez déployer (par exemple pour 1.0.0 pour 1.0.1, 10.0.0 Ensuite, appliquez cette configuration à l'application installée une fois : 10.0.1).

Exécuter

  1. Rebuilder et réinstaller l'application native. npx cap sync.
  2. Solution de rechange B : assouplir la politique de canal

Autoriser les mises à jour automatiques inter-majeures dans les paramètres de canal (seulement si cette stratégie de déploiement est intentionnelle).

Allow cross-major auto-updates in channel settings (only if that rollout strategy is intentional).

Documents liés :

Causes

La politique du canal est plus stricte (minor ou patch) que la mise à jour proposée.

  • minor empêche la mise à jour lorsque le bundle cible a une version majeure ou mineure différente de la base de ligne de l'appareil natif (version_build). Exemple : 1.2.3 -> 1.3.0 est bloqué.
  • patch empêche tout changement de numéro de version majeure, mineure ou de correctif. version_build. Seules les modifications de suffixe sont autorisées 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.

Fixer un bundle compatible avec la politique actuelle, ou

  • changer la politique de canal dans le tableau de bord/__CAPGO_KEEP_0__.
  • change channel policy in dashboard/CLI.

Canaux : Désactiver les stratégies d'actualisation automatique

disable_auto_update_to_metadata

Cause

Le canal utilise une ciblage basé sur les métadonnées (

) et le niveau de base du dispositif est inférieur à celui requisversion_numberRelated docs: min_update_version.

Réparation

  • Aligner la base de ligne 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 descentes en dessous de la base de ligne native.

Réparation

  • Charger une version de bundle supérieure ou égale à la base de ligne native, ou
  • activez la protection de downgrade pour ce canal.

Documents liés :

Cause

Le canal sélectionné/par défaut n’autorise pas l'attribution automatique du dispositif.

Solution

  • Utilisez un canal différent avec l'attribution automatique activée, ou
  • rendez le canal public / activez l'attribution automatique.

Documents liés :

Problème de version de base du dispositif manquant (

) ou nonunknownvalid semver Corrigé.

Fixer

  • à un plugins.CapacitorUpdater.version valid semver comme et reconstruire l'application native. 1.2.3.
  • Documentation connexe :

Canaux : Versionnement de paquet et canaux

Cause

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

Fix

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

Cause

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

Fix

  • Activer le commutateur de plateforme sur le canal.

Problème

Le canal interdit le type de construction actuel ou l'objectif de cible de runtime.

Solution

  • Aligner les options de canal (allow_prod, allow_dev, allow_device, allow_emulator) avec votre cible de test.

Problème

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

Solution

  • Utiliser 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.

Corrigé

  • Définir un canal par défaut cloud, ou
  • dans les builds de test, ou defaultChannel attribuer une surcharge de canal pour le dispositif.
  • Documents liés :

Canaux

on_premise_app

Cause

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

The backend returned HTTP 429 with on_premise_app. Cela se produit dans trois situations:

  1. L'ID de l'application n'existe pas dans Capgo — le app_id envoyé par le dispositif n'est pas enregistré, donc le backend n'a pas de dossier sur lui.
  2. L'application est étiquetée comme sur site — l'application existe mais est configurée pour les mises à jour auto-hébergées, donc le point de terminaison cloud Capgo refuse de le servir.
  3. Le plan de l'organisation est annulé — l'application n'a plus d'abonnement actif.

Erreur commune

Un typo dans 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.

Fixer

  • Vérifiez le app_id correspond exactement à ce qui est affiché dans le tableau de bord Capgo (sensibilité à la casse).
  • Si l'application n'est pas encore enregistrée, exécutez npx @capgo/cli@latest app add.
  • Si l'application est délibérément hébergée sur place, définissez plugins.CapacitorUpdater.updateUrl à votre point de terminaison d'actualisation auto-hébergé au lieu de l'URL cloud Capgo.
  • 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 native de l'application installée.
  3. Confirmer la politique de canal (disable_auto_update) correspond à la mise en œuvre prévue.
  4. Confirmer les paramètres de cible de plateforme/édition permettent à ce dispositif.
  5. Exécuter npx @capgo/cli@latest app debug et lire les erreurs de serveur backend code.

If vous utilisez Problèmes de mise à jour courants pour planifier le travail de plugin natif, connectez-le à Utiliser @capgo/capacitor-metteur à jour pour la capacité native dans Utiliser @capgo/capacitor-metteur à jour, Répertoire de plugin Capgo pour le flux de travail du produit dans Répertoire de plugin Capgo, Plugins Capacitor par Capgo pour le détail d'implémentation dans Plugins Capacitor par Capgo, Ajouter ou Mettre à jour les plugins pour le détail d'implémentation dans Ajouter ou Mettre à jour les plugins, et Alternatives de plugins d'entreprise Ionic Enterprise pour le flux de travail du produit dans les alternatives du plugin Enterprise Ionic.