Débogage
Copiez un prompt de configuration avec les étapes d'installation et le guide Markdown complet pour ce plugin.
Comprendre les journaux cloud :
Titre de la section « Comprendre les journaux cloud : »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.
Envoyé depuis l'arrière-plan
Titre de la section « Envoyé depuis l'arrière-plan »| code | Description |
|---|---|
| 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 semantique | La 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 »| code | Description |
|---|---|
| ping | Action de test interne utilisée pour vérifier que le système de statistiques fonctionne correctement. |
| get | Les informations pour télécharger la nouvelle version ont été envoyées à l'appareil. |
| delete | Un bundle a été supprimé sur l'appareil. |
| set | Un bundle a été configuré sur l'appareil. |
| set_fail | La configuration du bundle a échoué. |
| réinitialiser | L'appareil a été réinitialisé vers le builtin paquet. |
| téléchargement_XX | Un nouveau paquet a été téléchargé - le progrès est indiqué par XX% (incréments de 10%). |
| téléchargement_complet | Le nouveau paquet a terminé de se télécharger. |
| téléchargement_manifeste_debut | L'appareil a commencé à télécharger le manifeste d'actualisation. |
| téléchargement_manifeste_complet | L'appareil a terminé de télécharger le manifeste d'actualisation. |
| téléchargement_zip_debut | Le 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_fail | The new bundle has been installed but failed to call notifyAppReady. |
| checksum_fail | The 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_fait | Le zip contient des fichiers qui contiennent des chemins de dossier Windows illégaux |
| chemin_canonical_fait | Le chemin des fichiers n'est pas canonique |
| chemin_dossier_fait | Il y a une erreur dans le chemin des fichiers zip |
| dézip_fait | Dézip échoué |
| faible_mem_fait | Le téléchargement a échoué en raison d'une faible mémoire sur le dispositif |
| app_moved_to_background | L'application est passée en état d'arrière-plan. |
| app_moved_to_foreground | L'application est passée en mode avant-plan. |
| app_crash | L'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_native | Le 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_anr | Android 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_memory | Le 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_usage | Le 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'application | L'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'application | iOS 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 WebView | Le 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 WebView | Le 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 WebView | Une 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 WebView | Le 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ûr | L'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_disparu | Android 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_fail | L'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. |
| uninstall | The application was uninstalled or Capgo data cleared. |
| blocked_by_server_url | Server.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. |
État du paquet
Section intitulée “État du paquet”SUCCESS: installation du paquet terminéeERROR: installation ou téléchargement échouéPENDING: Téléchargement terminé, en attente de la mise en productionDELETED: Paquet supprimé, toujours présenté pour les statistiquesDOWNLOADING: Actuellement en téléchargement d'un bundle
Comprendre les journaux de l'appareil :
Sous-section intitulée « Comprendre les journaux de l'appareil : »Commande de débogage :
Sous-section intitulée « Commande de débogage : »Il existe une commande de débogage pour les utilisateurs Capgo de Cloudflare.
npx @capgo/cli@latest app debugCela 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
Android :
Section intitulée “Android :”pour trouver vos journaux sur Android Studio
Explications des journaux
Section intitulée “Explications des journaux”Failed to download from=> même chose échec de téléchargementnotifyAppReady 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.

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.

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.

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.

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
Android
Section intitulée “Android”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/ où APP_NAME est votre ID d'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”Continuez de la section Debugging
Section intitulée “Continuez de la section Debugging”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.