Passer à la navigation

Debugging

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

Les journaux Capgo 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 le contexte, comme 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 journaux plus anciens peuvent toujours afficher les alias de camelCase 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écessaire, 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 jusqu'à ce que vous augmentiez ou jusqu'au mois suivant.
pas_de_nouvelle_version_disponible (pasDeNouvelleVersionDisponible)Le dispositif possède la dernière version disponible.
__CAPGO_KEEP_0__La version native ne suit pas le format de version sémantique attendu.
__CAPGO_KEEP_0__ (__CAPGO_KEEP_0__)Le dispositif est sur la plateforme iOS, mais celle-ci est désactivée dans les paramètres de canal.
__CAPGO_KEEP_0__ (Le dispositif est sur la plateforme Android, mais celle-ci est désactivée dans les paramètres de canal.)__CAPGO_KEEP_0__
L'auto-mise à jour est désactivée par politique de compatibilité. Les métadonnées incluent (__CAPGO_KEEP_0__)__CAPGO_KEEP_0__ auto_update avec une règle correspondante comme major, minor, patch, metadata, ou none.
désactiver_mise_à_jour_sous_native (désactiverMiseÀJourSousNative)Le dispositif a une 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.
désactiver_bâtiment_de_développement (désactiverBâtimentDeDéveloppement)Le dispositif a un bâtiment de développement, mais cela est désactivé dans les paramètres du canal.
désactiver_emulateur (désactiverEmulateur)L'appareil est un émulateur, mais cela est désactivé dans les paramètres du canal.
__CAPGO_KEEP_0__ (__CAPGO_KEEP_0__)L'obtention d'une URL signée valide pour le téléchargement du bundle a échoué. 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.
L'appareil a tenté de s'associer automatiquement avec un canal privé, mais les paramètres du canal ne permettent pas l'auto-association des appareils ( (__CAPGO_KEEP_0__)Le canal est configuré pour désactiver la mise à jour automatique par numéro de version (allow_device_self_set ), mais le bundle n'est pas configuré pour cela.
cannot_get_bundle (cannotUpdateViaPrivateChannel)channelMisconfigureddisable_auto_update: 'version_number'cannot_get_bundle min_update_version le champ est null, ce qui rend impossible la détermination des appareils qui devraient recevoir la mise à jour.
désactiver_mise_à_jour_auto_sur_metadata (désactiverMiseÀJourAutoMetadata)La mise à jour automatique est désactivée par le numéro de version de la métadonnée. Le canal exige que la version de l'appareil soit d'au moins min_update_version, mais la version actuelle de l'appareil est inférieure à ce seuil.
désactiver_mise_à_jour_auto_sur_majeur (désactiverMiseÀJourAutoToMajeur)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_sur_minore (désactiverMiseÀJourAutoToMinore)Paramètres 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.
__CAPGO_KEEP_0__ (disableAutoUpdateToPatch)Paramètres 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.
bundle manquant (missingBundle)Le bundle affecté à ce canal n'a pas de contenu téléchargeable. Cela signifie que le bundle n'a pas de external_urlpas de r2_pathce 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.
Aucun canal (Aucun Canal ou Défaut)Aucun canal par défaut n'est configuré pour cette application et le dispositif n'a pas de canal spécifique défini. Au moins un doit être présent pour que les mises à jour fonctionnent.
limite de taux (Limiter le Taux)Le dispositif a été limité en raison de requêtes excessives.
clé d'identification non conforme (Clé d'identification non conforme)La clé publique de chiffrement du dispositif ne correspond pas à la clé publique utilisée pour chiffrer le bundle. Les métadonnées incluent device_key_id, bundle_key_id et version pour aider à identifier la non-conformité.
codeDescription
pingAction de test interne utilisée pour vérifier le bon fonctionnement du système de statistiques.
getLes informations pour télécharger la nouvelle version ont été envoyées au dispositif.
deleteUn bundle a été supprimé sur le dispositif.
setUn bundle a été configuré sur le dispositif.
set_failThe bundle failed to set.
réinitialiserLe dispositif a été réinitialisé vers le builtin bundle.
télécharger_XXUn nouveau bundle a été téléchargé - le progrès est indiqué par XX% (incréments de 10%).
téléchargement_completLe nouveau bundle a terminé de se télécharger.
manifeste_de_téléchargement_startLe dispositif a commencé à télécharger le manifeste d'actualisation.
manifeste_de_téléchargement_completLe dispositif a terminé de télécharger le manifeste d'actualisation.
download_zip_startLe dispositif a commencé à télécharger l'archive du bundle.
download_zip_completeLe dispositif a terminé de télécharger l'archive du bundle.
download_manifest_file_failUne entrée du manifest a échoué à se télécharger; le payload de statistiques est version_name en forme version:fileName pour localiser l'asset.
download_manifest_checksum_failLe fichier de manifest a échoué à valider la somme de contrôle.
download_manifest_brotli_failLe fichier de manifest a échoué à se décompresser à l'aide de Brotli.
Echec de téléchargementLe nouveau bundle a échoué à se télécharger.
Echec de mise à jourLe nouveau bundle a été installé mais a échoué à se lancer notifyAppReady.
Echec de validation de checksumL'échec de validation de checksum peut survenir pour plusieurs raisons : 1) Mauvais type de checksum : The latest version of the CLI and plugins (version 5.10.0+, 6.25.0+ or 7+) use SHA256 checksums, while older plugins used CRC32. If you see a checksum fail, check if the checksum is CRC32 (a shorter hash) rather than SHA256. This usually indicates the bundle was uploaded with an old version of the CLI. Verify your bundle version in the Capgo dashboard - bundles created since version 5.10.0/6.25.0/7 should use SHA256. If you’re seeing CRC32 checksums, ensure you have the latest plugin version installed locally (the CLI checks your local plugin version to determine which checksum type to upload), then upgrade your CLI and re-upload the bundle. 2) Mauvais clé de chiffrement (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 checksum. Si vous utilisez la chiffrement et voyez cela, vérifiez que la clé publique de votre application checksum_failcorrespond à 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 chiffrement correct. capacitor.config.json Echec de téléchargement du bundle keyMismatch erreur provenant du serveur au lieu, ce qui rend ce problème plus facile à diagnostiquer.
windows_path_failLe zip contient des fichiers qui contiennent des chemins d'accès Windows illégaux
canonical_path_failLe chemin des fichiers n'est pas canonique
directory_path_failIl y a une erreur dans le chemin des fichiers zip
unzip_faildécompression échouée
low_mem_failLa 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 état d'avant-plan.
app_crashL'application a signalé une panne détectée au 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 le système, 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 basse. Les métadonnées peuvent inclure la mémoire disponible et les signaux du système lorsque disponible.
app_killed_excessive_resource_usageThe OS a tué l'application en raison d'un utilisation excessive des ressources. Les métadonnées peuvent inclure le type de ressource ou la raison de la plateforme lorsque disponible.
échec_initialisation_applicationLe flux de mise à jour ou l'initialisation de l'application a échoué avant que le runtime normal soit prêt. Les métadonnées peuvent inclure l'étape échouée et le message d'erreur.
avertissement_mémoire_applicationiOS a signalé un avertissement de mémoire. Les métadonnées peuvent inclure le bundle actif et le contexte de mémoire lorsque disponible.
erreur_javascript_webviewLe WebView a signalé une erreur JavaScript non capturée. Les métadonnées peuvent inclure le message, l'URL de source, la ligne, la colonne et la pile.
rejet_promesse_non_géré_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_ressource_webviewUne 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.
violations_politique_sécurité_webviewLa 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_restartL'application a détecté une session WebView précédente qui n'a pas fermé proprement. Cela peut aider à identifier les boucles de panne après une mise à jour.
webview_render_process_goneAndroid 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_content_process_terminatediOS a signalé que le processus de contenu WebView a été terminé. Les métadonnées peuvent inclure le bundle actif et l'URL de la page lorsqu'elles sont disponibles.
decrypt_failL'opération de décryptage du bundle téléchargé a échoué.
get_channel (getChannel)La chaîne actuelle pour le dispositif a été interrogée.
set_canal (setCanal)Un canal a été configuré avec succès pour le dispositif.
désinstallerThe application was uninstalled or Capgo data cleared.
bloqué_par_l_url_du_serveurServer.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.
  • SUCCESSpaquet installé
  • ERRORinstallation ou téléchargement échoué
  • PENDINGtéléchargement terminé, en attente de la mise en production
  • DELETED: Paquet supprimé, toujours présent pour les statistiques
  • DOWNLOADING: En cours de téléchargement d'un paquet

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.

Trouver vos journaux sur Xcode

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

Trouvez 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 la section Appareils de la fenêtre de gauche.
  • 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 située en bas de l'écran.
  • Voici où vous pouvez visualiser le système de fichiers actuel en sélectionnant le téléchargement d'une snapshot de celui-ci.

Le panneau Xcode Devices 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 snapshot du système de fichiers sous forme de fichier .xcappdata que vous pourrez 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 d'Android Studio montrant le répertoire des données de l'application

Ensuite Trouvez le versions répertoire pour voir toutes les versions

Comprendre les journaux de crash de production IOS

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

Si vous utilisez Debugging pour planifier le travail de plugin natif, connectez-le avec Utilisez @capgo/capacitor-updater pour la capacité native dans Utilisez @capgo/capacitor-updater Capgo Plugin Directory pour le flux de travail du produit dans le Répertoire de plugins Capgo plugins Capgo par Capacitor pour le détail d'implémentation dans les plugins Capgo par Capacitor, Ajout ou mise à jour de plugins pour le détail d'implémentation dans Ajout ou mise à jour de plugins, et Alternatives de plugins d'entreprise Ionic Enterprise pour le flux de travail du produit dans Alternatives de plugins d'entreprise Ionic Enterprise.