Passer à la navigation

Débogage

GitHub

Si vous obtenez un refus de cloud code et avez besoin de mesures de remédiation concrètes, voir Problèmes de mise à jour 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 mémoire ou la raison spécifique au système d'exploitation. Les anciens journaux peuvent toujours afficher les alias de camelCase légaciers listés entre parenthèses.

codeDescription
adresse IP non valide (__CAPGO_KEEP_0__)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 appareils dans votre compte.
__CAPGO_KEEP_1__ (__CAPGO_KEEP_1__, précédemment __CAPGO_KEEP_2__)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 à niveau ou jusqu'au prochain mois.
__CAPGO_KEEP_3__ (Aucune nouvelle version disponible)L'appareil possède la dernière version disponible.
Erreur de version semantiqueLa version native ne suit pas le format de version semantique attendu.
plateforme_ios_désactivée (disablePlatformIos)Le dispositif se trouve sur la plateforme iOS, mais celle-ci est désactivée dans les paramètres du canal.
plateforme_android_désactivée (disablePlatformAndroid)Le dispositif se trouve sur la plateforme Android, mais celle-ci est désactivée dans les paramètres du canal.
mise_à_jour_auto_désactivée (disableAutoUpdate)La mise à jour automatique est désactivée par la politique de compatibilité. Les métadonnées incluent auto_update avec une règle de correspondance comme major, minor, patch, metadata, ou none.
mise_à_jour_auto_désactivée_sous_nativ (__CAPGO_KEEP_0__)Le dispositif a la version (1.2.3), et le canal a une mise à jour (1.2.2) sous la version du dispositif pour l'envoyer, mais cela est désactivé dans les paramètres du canal.
__CAPGO_KEEP_0__ (__CAPGO_KEEP_0__)Le dispositif a une build de développement, mais cela est désactivé dans les paramètres du canal.
__CAPGO_KEEP_0__ (__CAPGO_KEEP_0__)Le dispositif est un émulateur, mais cela est désactivé dans les paramètres du canal.
__CAPGO_KEEP_0__ (__CAPGO_KEEP_0__)É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.
ne peut pas mettre à jour via un canal privé (nePeutPasMettreAJourViaCanalPrive)Le dispositif a tenté de s'associer automatiquement avec un canal privé, mais les paramètres du canal ne permettent pas l'auto-association de dispositifs (allow_device_self_set canal configuré de manière incorrecte
canalConfigureDeManiereIncorrecte (Le canal est configuré pour désactiver la mise à jour automatique par numéro de version ()), mais le champ de la métadonnée du bundle est null, ce qui rend impossible de déterminer quels dispositifs devraient recevoir la mise à jour.disable_auto_update: 'version_number'désactiver mise à jour automatique vers métadonnée min_update_version désactiverMiseAJourAutomatiqueVersMetadonnee
désactiver mise à jour automatique vers métadonnée (désactiverMiseAJourAutomatiqueVersMetadonnee)Mise à jour automatique désactivée par numéro de version de 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.
disable_auto_update_to_major (disableAutoUpdateToMajor)Paramètres du canal disable_auto_update: 'major' empêche les mises à jour qui augmenteraient le numéro de version majeur, telles que bloquer 1.x.x from updating to 2.x.x.
disable_auto_update_to_minor (disableAutoUpdateToMinor)Paramètres du canal disable_auto_update: 'minor' bloque les ensembles cibles dont le numéro de version majeur ou mineur diffère de la base native du dispositif (version_build), telles que 1.2.3 -> 1.3.0.
désactiver_mise_à_jour_auto_pour_patch (désactiverMiseÀJourAutoPourPatch)Paramètres de canal disable_auto_update: 'patch' toute modification de numéro majeur, mineur ou de patch est bloquée de 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.
paquet_manquant (paquetManquant)Le paquet affecté à ce canal n'a pas de contenu téléchargeable. Cela signifie que le paquet n'a pas external_url, pas de r2_path, ce n'est pas une version intégrée, et il n'y a pas d'entrées de manifeste 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 surcouche spécifique assignée. Au moins un doit être présent pour que les mises à jour fonctionnent.)limité à la vitesse
limité à la vitesse (Le dispositif a été limité à la vitesse en raison de requêtes excessives.)clé d'identification non conforme
clé d'identification non conforme (La clé publique d'encryption du dispositif ne correspond pas à la clé publique utilisée pour chiffrer le bundle. Les métadonnées incluent), et device_key_id, bundle_key_idpour aider à identifier la non-conformité. version Envoyé depuis le dispositif

Section intitulée « Envoyé depuis le dispositif »

Section intitulée « Envoyé depuis le 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_failLa configuration du bundle a échoué.
réinitialiserL'appareil a été réinitialisé vers le builtin paquet.
téléchargement_XXUn nouveau paquet a été téléchargé - le progrès est indiqué par XX% (incréments de 10%).
téléchargement_completLe nouveau paquet a terminé de se télécharger.
téléchargement_manifeste_debutL'appareil a commencé à télécharger le manifeste d'actualisation.
téléchargement_manifeste_completL'appareil a terminé de télécharger le manifeste d'actualisation.
téléchargement_zip_debutLe 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__The new bundle failed to download.
update_failThe new bundle has been installed but failed to call notifyAppReady.
checksum_failThe new bundle failed to validate the checksum. This can happen for several reasons: 1) Mismatch de type de checksum : The latest version of the CLI and plugins (version 5.10.0+, 6.25.0+ or 7+) utilise des checksums SHA256, tandis que les anciens plugins utilisaient CRC32. Si vous voyez une erreur 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 la CLI. Vérifiez votre version de 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 local pour déterminer quel type de checksum à télécharger), puis mettez à jour votre CLI et ré-uploadez le bundle. 2) Mismatch de clé de chiffrement (sur les versions de plugin inférieures à 8.3.0 ou 5/6/7.38.0) : Si vous utilisez la chiffrement et que vous voyez une erreur de checksum, assurez-vous que la clé publique de votre application correspond à la clé privée utilisée pour télécharger le bundle. La mise à jour vers la version de plugin 8.3.0+ (ou 5/6/7.38.0+) vous donnera une erreur de serveur plus précise, ce qui facilitera la détection de ce problème. checksum_fail__CAPGO_KEEP_0__ capacitor.config.json __CAPGO_KEEP_1__ keyMismatch __CAPGO_KEEP_2__
chemin_dossier_faitLe zip contient des fichiers qui contiennent des chemins de dossier Windows illégaux
chemin_canonical_faitLe chemin des fichiers n'est pas canonique
chemin_dossier_faitIl y a une erreur dans le chemin des fichiers zip
dézip_faitDézip échoué
faible_mem_faitLe téléchargement a échoué en raison d'une faible mémoire sur le dispositif
app_moved_to_backgroundL'application est passée en état d'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, le pilote, 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 le système d'exploitation, la raison, le pilote et les détails du processus lorsque disponibles.
app_anrAndroid a signalé un événement d'application non réactive. Les métadonnées peuvent inclure la raison de l'ANR, le thread ou le résumé de 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 du système d'exploitation lorsque disponibles.
app_killed_excessive_resource_usageLe système d'exploitation a tué l'application pour un usage excessif des ressources. Les métadonnées peuvent inclure le type de ressource ou la raison du système d'exploitation lorsque disponible.
échec de l'initialisation de l'applicationL'actualiseur ou le flux de démarrage 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.
avertissement de la mémoire de l'applicationiOS a signalé un avertissement de mémoire. Les métadonnées peuvent inclure le bundle actif et le contexte de mémoire lorsqu'il est disponible.
erreur de JavaScript non capturée du WebViewLe WebView a signalé une erreur de JavaScript non capturée. Les métadonnées peuvent inclure le message, l'URL de source, la ligne, la colonne et la pile.
rejet de promesse non géré du WebViewLe WebView a signalé un rejet de promesse non géré. Les métadonnées peuvent inclure la raison de rejet, l'URL de source et la pile.
erreur de ressource du WebViewUne ressource du WebView a échoué à se charger. Les métadonnées peuvent inclure l'URL, le statut code, le type de ressource et le message d'erreur.
violation de la politique de sécurité du WebViewLe WebView a signalé une violation de la politique de sécurité. Les métadonnées peuvent inclure l'URI bloqué, la directive et l'URL du document.
webview_redémarrage_non_sûrL'application a détecté une session WebView précédente qui n'a pas fermé correctement. Cela peut aider à identifier les boucles de crash après une mise à jour.
webview_process_de_renderer_disparuAndroid a signalé que le processus de rendu WebView a quitté. Les métadonnées peuvent inclure si le rendu a crashé et la priorité du rendu.
webview_process_de_contenu_terminéiOS a signalé que le processus de contenu WebView a été terminé. Les métadonnées peuvent inclure le bundle actif et l'URL de page lorsque disponible.
decrypt_failL'opération de décryptage du bundle téléchargé a échoué.
get_canal (getChannel)Le canal actuel du dispositif a été interrogé.
set_canal (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 en production
  • 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 sur 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 Dispositifs et Simulateurs

Pour atteindre cela :

  • Connectez votre appareil à votre Mac et sélectionnez Fenêtre > Dispositifs dans le menu de navigation Xcode.
  • Sélectionnez votre appareil dans le panneau de gauche sous la section Dispositifs.
  • 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 Devices panel affichant 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 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 montrant 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 Debugging pour planifier le travail de plugin natif, connectez-le avec Utilisation de @capgo/capacitor-updater pour la capacité native dans Utilisation de @capgo/capacitor-updater 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.