Debugging
Copiez un prompt de configuration avec les étapes d'installation et le guide Markdown complet pour ce plugin.
Comprendre les journaux cloud :
Sous-titre « 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 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.
Envoyé depuis l'arrière-plan
Sous-titre « Envoyé depuis l'arrière-plan »| code | Description |
|---|---|
| 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é. |
Envoyé du dispositif
Titre de la section : « Envoyé depuis le dispositif »| code | Description |
|---|---|
| ping | Action de test interne utilisée pour vérifier le bon fonctionnement du système de statistiques. |
| get | Les informations pour télécharger la nouvelle version ont été envoyées au dispositif. |
| delete | Un bundle a été supprimé sur le dispositif. |
| set | Un bundle a été configuré sur le dispositif. |
| set_fail | The bundle failed to set. |
| réinitialiser | Le dispositif a été réinitialisé vers le builtin bundle. |
| télécharger_XX | Un nouveau bundle a été téléchargé - le progrès est indiqué par XX% (incréments de 10%). |
| téléchargement_complet | Le nouveau bundle a terminé de se télécharger. |
| manifeste_de_téléchargement_start | Le dispositif a commencé à télécharger le manifeste d'actualisation. |
| manifeste_de_téléchargement_complet | Le dispositif a terminé de télécharger le manifeste d'actualisation. |
| download_zip_start | Le dispositif a commencé à télécharger l'archive du bundle. |
| download_zip_complete | Le dispositif a terminé de télécharger l'archive du bundle. |
| download_manifest_file_fail | Une 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_fail | Le fichier de manifest a échoué à valider la somme de contrôle. |
| download_manifest_brotli_fail | Le fichier de manifest a échoué à se décompresser à l'aide de Brotli. |
| Echec de téléchargement | Le nouveau bundle a échoué à se télécharger. |
| Echec de mise à jour | Le nouveau bundle a été installé mais a échoué à se lancer notifyAppReady. |
| Echec de validation de checksum | L'é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_fail | Le zip contient des fichiers qui contiennent des chemins d'accès Windows illégaux |
| canonical_path_fail | Le chemin des fichiers n'est pas canonique |
| directory_path_fail | Il y a une erreur dans le chemin des fichiers zip |
| unzip_fail | décompression échouée |
| low_mem_fail | La 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 état d'avant-plan. |
| app_crash | L'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_native | Le 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_anr | Android 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_memory | Le 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_usage | The 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_application | Le 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_application | iOS 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_webview | Le 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é_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_ressource_webview | Une 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é_webview | La 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_restart | L'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_gone | 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_content_process_terminated | 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 la page lorsqu'elles sont disponibles. |
| decrypt_fail | L'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ésinstaller | The application was uninstalled or Capgo data cleared. |
| bloqué_par_l_url_du_serveur | 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 »SUCCESSpaquet installéERRORinstallation ou téléchargement échouéPENDINGtéléchargement terminé, en attente de la mise en productionDELETED: Paquet supprimé, toujours présent pour les statistiquesDOWNLOADING: En cours de téléchargement d'un paquet
Comprendre les journaux de l'appareil :
Section intitulée “Comprendre les journaux de l'appareil :”Commande de débogage :
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.
Trouver vos journaux sur Xcode
Android :
Section intitulée “Android :”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
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.

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.

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.

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
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 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”Continuez de Debugging
Section intitulée “Continuez de Debugging”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.