Aller directement au contenu

Débogage

Si vous obtenez un refus de nuage code et avez besoin de mesures de remédiation concrètes, voir Problèmes d'actualisation courants.

Capgo les journaux peuvent inclure des métadonnées pour l'événement. Dans le tableau de bord, utilisez le filtre d'action pour filtrer par l'action en snake_case code listée ci-dessous, et cliquez sur la cellule de métadonnées pour copier le payload JSON complet. Les métadonnées sont particulièrement utiles pour les événements de crash et de WebView car elles peuvent inclure du contexte tel que le message d'erreur, l'URL de source, la ligne et la colonne, l'état du processus, la pression de la mémoire ou la raison spécifique au système d'exploitation. Les anciens journaux peuvent toujours afficher les alias camelCase de legacy listés entre parenthèses.

codeDescription
adresse_ip_invalide (AdresseIpInvalide)L'utilisateur est situé dans un centre de données Google et la mise à jour est inférieure à 4 heures. Cela est fait pour empêcher les appareils des bots Google de compter comme des appareils dans votre compte.
mise_à_jour_plan_nécessaire (miseÀJourPlanNécessaireet précédemment mise_à_jour_plan_nécessaire)Indique que vous avez atteint la limite de votre plan, et l'appareil ne recevra pas de mises à jour tant que vous n'avez pas mis à jour ou jusqu'au mois prochain.
pas_de_nouvelle_version_disponible (pasDeNouvelle)L'appareil dispose de la dernière version disponible.
__CAPGO_KEEP_0__La version native ne suit pas le format de version sémantique attendu.
__CAPGO_KEEP_1__ (__CAPGO_KEEP_1__)L'appareil est sur la plateforme iOS, mais celle-ci est désactivée dans les paramètres du canal.
__CAPGO_KEEP_1__ (__CAPGO_KEEP_1__)L'auto-mise à jour est désactivée par politique de compatibilité. Les métadonnées incluent
avec une règle de correspondance comme (__CAPGO_KEEP_2__)__CAPGO_KEEP_3__ auto_update __CAPGO_KEEP_4__ major, minor, patch, metadataThe appareil a la version ( none.
), et le canal a une mise à jour ( () sous la version de l'appareil pour envoyer, mais cela est désactivé dans les paramètres du canal.)disable_auto_update_under_native1.2.3disableAutoUpdateUnderNative1.2.2Le appareil a une version (
) et le canal a une mise à jour ( () sous la version de l'appareil pour envoyer, mais cela est désactivé dans les paramètres du canal.)disable_dev_build
disableDevBuild (Le appareil a une version de développement, mais cela est désactivé dans les paramètres du canal.)disable_emulator,
__CAPGO_KEEP_0__ (__CAPGO_KEEP_0__)L'échec de génération d'une URL signée valide pour le téléchargement du bundle. Cela se produit lorsque la génération de l'URL du bundle échoue ou retourne une URL non valide et qu'il n'y a pas de manifeste disponible en tant que fallback.
__CAPGO_KEEP_0__ (__CAPGO_KEEP_0__)Le dispositif a tenté de se lier automatiquement à un canal privé, mais les paramètres du canal ne permettent pas la liaison automatique du dispositif (allow_device_self_set Le canal est configuré pour désactiver la mise à jour automatique par numéro de version (
Le canal est configuré pour désactiver la mise à jour automatique par numéro de version ( (Le canal est configuré pour désactiver la mise à jour automatique par numéro de version ()Le canal est configuré pour désactiver la mise à jour automatique par numéro de version (disable_auto_update: 'version_number'Le canal est configuré pour désactiver la mise à jour automatique par numéro de version ( min_update_version Le canal est configuré pour désactiver la mise à jour automatique par numéro de version (
désactiver_mise_à_jour_auto_version (désactiverMiseÀJourAutoVersion)L'auto-mise à jour est désactivée par le numéro de version des métadonnées. Le canal nécessite que la version du dispositif soit d'au moins min_update_version, mais la version actuelle du dispositif est inférieure à ce seuil.
désactiver_mise_à_jour_auto_majeure (désactiverMiseÀJourAutoMajeure)Paramètre de canal disable_auto_update: 'major' empêche les mises à jour qui augmenteraient le numéro de version majeur, telles que bloquer 1.x.x de mettre à jour vers 2.x.x.
désactiver_mise_à_jour_auto_minore (désactiverMiseÀJourAutoMinore)Paramètre de canal disable_auto_update: 'minor' empêche les mises à jour qui augmenteraient le numéro de version mineure, telles que la mise à jour de 1.2.x à 1.3.x.
disable_auto_update_to_patch (disableAutoUpdateToPatch)Paramètre de canal disable_auto_update: 'patch' empêche les mises à jour qui augmenteraient le numéro de version de patch, ou permet uniquement des mises à jour au niveau de patch dans la même version majeure mineure.
missing_bundle (missingBundle)Le bundle attribué à ce canal n'a pas de contenu téléchargeable. Cela signifie que le bundle n'a pas external_urlpas de r2_pathce n'est pas une version intégrée, et il n'y a pas d'entrées de manifest disponibles pour le téléchargement.
pas de canal (Aucun canal ou surcouche n'est configuré pour cette application et le dispositif n'a pas de canal spécifique de surcouche assigné. Au moins un doit être présent pour que les mises à jour fonctionnent.)Aucun canal par défaut n'est configuré pour cette application et le dispositif n'a pas de canal spécifique de surcouche assigné. Au moins un doit être présent pour que les mises à jour fonctionnent.
Le dispositif a été limité en raison de requêtes excessives. (Le dispositif a été limité en raison de requêtes excessives.)La clé publique de chiffrement du dispositif ne correspond pas à la clé publique utilisée pour chiffrer le bundle. Les métadonnées incluent
La clé publique de chiffrement du dispositif ne correspond pas à la clé publique utilisée pour chiffrer le bundle. Les métadonnées incluent (à l'aide d'identifiants pour aider à identifier la différence.)Envoyé du dispositif device_key_id, bundle_key_idSection intitulée « Envoyé du dispositif » version Section intitulée « Envoyé du dispositif »

Section intitulée « Envoyé du dispositif »

Section intitulée « Envoyé du dispositif »
codeDescription
pingAction de test interne utilisée pour vérifier que le système de statistiques fonctionne correctement.
getLes informations pour télécharger la nouvelle version ont été envoyées à l'appareil.
deleteUn bundle a été supprimé sur l'appareil.
setUn bundle a été configuré sur l'appareil.
set_failLe bundle a échoué à se configurer.
resetLe dispositif a été réinitialisé à builtin bundle.
download_XXUn nouveau bundle a été téléchargé - le progrès est indiqué par XX% (incréments de 10%).
download_completeLe nouveau bundle a terminé de se télécharger.
download_manifest_startLe dispositif a commencé à télécharger le manifeste d'actualisation.
download_manifest_completeLe dispositif a terminé de télécharger le manifeste d'actualisation.
download_zip_startLe dispositif a commencé à télécharger l'archive du bundle.
__CAPGO_KEEP_0__Le dispositif a terminé de télécharger l'archive du bundle.
__CAPGO_KEEP_0__Une entrée du manifeste a échoué à se télécharger; le payload de statistiques met version_name __CAPGO_KEEP_0__ version:fileName à localiser l'asset.
__CAPGO_KEEP_0__Le fichier de manifeste a échoué à passer la validation de checksum.
__CAPGO_KEEP_0__Le fichier de manifeste a échoué à se décompresser à l'aide de Brotli.
__CAPGO_KEEP_0__Le nouveau bundle a échoué à se télécharger.
mise à jour échouéeLe nouveau bundle a été installé mais a échoué à appeler notifyAppReady.
échec de vérificationLe nouveau bundle a échoué à valider le checksum. Cela peut arriver pour plusieurs raisons : 1) Mismatch du type de checksum : La dernière version de CLI et des plugins (version 5.10.0+, 6.25.0+ ou 7+) utilise des checksums SHA256, tandis que les anciens plugins utilisaient CRC32. Si vous voyez un échec de checksum, vérifiez si le checksum est CRC32 (un hash plus court) plutôt que SHA256. Cela indique généralement que le bundle a été téléchargé avec une ancienne version de CLI. Vérifiez la version de votre bundle dans le tableau de bord Capgo - les bundles créés depuis la version 5.10.0/6.25.0/7 utilisent SHA256. Si vous voyez des checksums CRC32, assurez-vous d'avoir la dernière version du plugin installée localement (le CLI vérifie votre version de plugin locale pour déterminer quel type de checksum à télécharger), puis mettez à jour votre CLI et ré-uploadez le bundle. 2) Mismatch de la clé d'encryption (sur les versions de plugin inférieures à 8.3.0 ou 5/6/7.38.0) : Sur les anciennes versions de plugin, si la clé publique du dispositif ne correspond pas à la clé utilisée pour chiffrer le bundle, la déchiffrement échouera silencieusement et causera un échec de vérification. Si vous utilisez l'encryption et voyez checksum_fail, vérifiez que la clé publique de votre application capacitor.config.json correspond à la clé privée utilisée pour télécharger le bundle. Mettre à jour vers la version de plugin 8.3.0+ (ou 5/6/7.38.0+) vous donnera un keyMismatch erreur correcte du serveur au lieu de cela, ce qui facilitera la détection de ce problème.
__CAPGO_KEEP_0__Le zip contient des fichiers qui contiennent des chemins Windows illégaux.
__CAPGO_KEEP_0__Le chemin des fichiers n'est pas canonique.
__CAPGO_KEEP_0__Il y a une erreur dans le chemin des fichiers zip.
__CAPGO_KEEP_0__L'opération d'extraire a échoué.
__CAPGO_KEEP_0__Le téléchargement a échoué en raison d'une faible mémoire sur le dispositif.
__CAPGO_KEEP_0__L'application est passée en mode arrière-plan.
app_moved_to_foregroundL'application est passée en mode avant-plan.
app_crashL'application a signalé une panne détectée à partir du niveau JavaScript ou Capacitor. Les métadonnées peuvent inclure le message, la pile, la source et le contexte de bundle actif.
app_crash_nativeLe niveau natif a signalé une panne du système. Les métadonnées peuvent inclure la plateforme, la raison, la pile et les détails du processus lorsque disponibles.
app_anrAndroid a signalé un événement Application Not Responding. Les métadonnées peuvent inclure la raison de l'ANR, le thread ou le résumé de la trace lorsque disponible.
app_killed_low_memoryLe processus de l'application a été tué après pression de mémoire faible. Les métadonnées peuvent inclure la mémoire disponible et les signaux de la plateforme lorsque disponibles.
app_killed_excessive_resource_usageLe système a tué l'application pour un usage excessif des ressources. Les métadonnées peuvent inclure le type de ressource ou la raison de la plateforme lorsque disponible.
app_initialization_failureL'initialisation de l'application a échoué avant que le runtime normal ne soit prêt. Les métadonnées peuvent inclure l'étape échouée et le message d'erreur.
app_memory_warningUn avertissement de mémoire a été signalé par iOS. Les métadonnées peuvent inclure le bundle actif et le contexte de mémoire lorsqu'il est disponible.
webview_javascript_errorUne erreur JavaScript non capturée a été signalée par le WebView. Les métadonnées peuvent inclure le message, l'URL de source, la ligne, la colonne et la pile.
webview_unhandled_rejectionLe WebView a signalé une rejet de promesse non géré. Les métadonnées peuvent inclure la raison de rejet, l'URL de source et la pile.
webview_resource_errorUne ressource du WebView a échoué à charger. Les métadonnées peuvent inclure l'URL, le statut code, le type de ressource et le message d'erreur.
webview_security_policy_violationLe WebView a signalé une violation de la politique de sécurité du contenu. Les métadonnées peuvent inclure l'URI bloqué, la directive et l'URL du document.
webview_unclean_restartLa session WebView précédente n'a pas été fermée correctement. Cela peut aider à identifier les boucles de panne après une mise à jour.
webview_render_process_goneLe processus de rendu WebView a quitté. Les métadonnées peuvent inclure si le rendu a crashé et la priorité du rendu.
webview_content_process_terminatedLe processus de contenu WebView a été terminé. Les métadonnées peuvent inclure le bundle actif et l'URL de page disponible.
decrypt_failL'opération de décryptage du bundle téléchargé a échoué.
get_channel (getChannel)Le canal actuel du dispositif a été interrogé.
set_channel (setChannel)Un canal a été correctement configuré pour le dispositif.
uninstallThe application was uninstalled or Capgo data cleared.
blocked_by_server_urlServer.url is present in your capacitor config, this make Capacitor serve remote url and ignore local files, while our updater is made to function with local file, Server.url Is consider by Capacitor Makers as bad practice in production and will lead to many issue and plugin not working correctly.
  • SUCCESS: installation du paquet terminée
  • ERROR: installation ou téléchargement échoué
  • PENDING: Téléchargement terminé, en attente de la mise à jour
  • DELETED: Paquet supprimé, toujours présenté pour les statistiques
  • DOWNLOADING: Actuellement en téléchargement d'un bundle

Il existe une commande de débogage pour les utilisateurs Capgo de Cloudflare.

Fenêtre de terminal
npx @capgo/cli@latest app debug

Cela vous permettra de vérifier tous les événements se produisant dans l'application et de trouver une solution si les mises à jour ne se produisent pas.

pour trouver vos journaux dans Xcode

pour trouver vos journaux dans Android Studio

  • Failed to download from => même chose échec de téléchargement
  • notifyAppReady was not called, roll back current bundle => même chose que échec de mise à jour

Trouver le bundle téléchargé sur votre appareil

Section intitulée « Trouvez le bundle téléchargé sur votre appareil »

Pour déboguer sur iOS, vous devez déposer l'application sur votre ordinateur, vous pouvez le faire comme ceci :

Xcode dispose d'une fonctionnalité intégrée pour inspecter le système de fichiers des applications installées par les développeurs sur un appareil iOS. Menu Xcode Fenêtre montrant l'option Appareils et Simulateurs

Pour atteindre cela :

  • Connectez votre appareil à votre Mac et sélectionnez Fenêtre > Appareils dans le menu de la barre d'outils Xcode.
  • Sélectionnez votre appareil dans le panneau de gauche sous la section Appareils.
  • Cela affichera une liste des applications installées par les développeurs pour cet appareil.
  • Sélectionnez l'application que vous souhaitez inspecter et sélectionnez ensuite l'icône de trois points près du bas de l'écran.
  • Voici où vous pouvez visualiser le système de fichiers actuel en sélectionnant télécharger une capture d'écran de celui-ci.

Xcode Panneau des appareils montrant l'option de téléchargement du conteneur d'application

En sélectionnant Télécharger le conteneur…, vous téléchargerez et exporterez une copie de l'état du système de fichiers sous forme de fichier .xcappdata que vous pouvez parcourir.

Fichier xcappdata téléchargé avec le menu contextuel Afficher le contenu du package

Cliquez avec le bouton droit sur ce fichier et sélectionnez Afficher le contenu du package pour ouvrir le dossier.

Ouvrez le dossier App Data, et vous devriez maintenant voir quelques dossiers comme Documents, Library, tmp, etc.

Structure du dossier du conteneur d'application iOS montrant les dossiers Documents et Library

Vous trouverez ensuite une version dans 2 dossiers :

library/NoCloud/ionic_built_snapshots nécessaire après le redémarrage de l'application

et documents/versions pour le rechargement chaud

Pour déboguer sur Android, vous devez accéder au dispositif depuis Android Studio :

  • Cliquez sur Vue > Outils de fenêtre > Explorateur de fichiers de dispositif ou cliquez sur le bouton Explorateur de fichiers de dispositif dans la barre des outils de fenêtre pour ouvrir l'Explorateur de fichiers de dispositif.
  • Sélectionnez un appareil dans la liste déroulante.
  • Ouvrez le chemin data/data/APP_NAME/APP_NAME est votre ID d'application.

Explorateur de fichiers de dispositif Android Studio affichant le répertoire des données de l'application

Ensuite Trouvez le versions dossier pour voir toutes les versions

Comprendre les journaux de panne de production IOS

Section intitulée “Comprendre les journaux de panne de production IOS”

Si vous utilisez Débogage pour planifier le travail de plugin natif, connectez-le avec Utilisation de @capgo/capacitor-mise à jour pour la capacité native dans Utilisation de @capgo/capacitor-mise à jour Capgo Répertoire du plugin pour le flux de produit dans le répertoire de plugin Capgo Capacitor Plugins par Capgo pour le détail d'implémentation dans Capacitor Plugins 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 Plugin d'Entreprise Ionic pour le flux de produit dans Alternatives de Plugin d'Entreprise Ionic.