Debugging
Comprendre les journaux cloud :
Section titled “Comprendre les journaux cloud :”If you get a cloud refusal code and need concrete remediation steps, see Common Update Problems.
Envoyé depuis le backend| codes | Descriptif |
Section titled “Envoyé depuis le backend| codes | Descriptif |”| ------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| IP invalide | L’utilisateur se trouve dans un centre de données Google et la mise à jour date de moins de 4 heures. Ceci est fait pour empêcher les appareils des robots Google de compter comme appareils dans votre compte. |
| needPlanUpgrade (auparavant needUpgrade) | Indique que vous avez atteint la limite de votre forfait et que l’appareil ne recevra pas de mises à jour avant la mise à niveau ou le mois suivant. |
| nonNouveau | L’appareil dispose de la dernière version disponible. |
| désactiverPlatformIos | L’appareil est sur la plateforme iOS, mais celle-ci est désactivée dans les paramètres de la chaîne. |
| désactiver la plate-formeAndroid | L’appareil est sur la plateforme Android, mais celle-ci est désactivée dans les paramètres de la chaîne. |
| désactiver la mise à jour automatique | “majeur” | “mineur” | “numéro_version” | “aucun” |
| désactiverAutoUpdateUnderNative | L’appareil a une version (1.2.3) et le canal a une mise à jour (1.2.2) sous la version de l’appareil à envoyer, mais celle-ci est désactivée dans les paramètres du canal. |
| désactiverDevBuild | L’appareil a une version de développement, mais celle-ci est désactivée dans les paramètres du canal. |
| désactiver l’émulateur | L’appareil est un émulateur, mais cela est désactivé dans les paramètres du canal. |
| ne peut pasGetBundle | Échec de la génération d’une URL signée valide pour le téléchargement du bundle. Cela se produit lorsque la génération d’URL du bundle échoue ou renvoie une URL non valide (ne commençant pas par http/https) et qu’aucun manifeste n’est disponible comme solution de secours. |
| ne peut pas mettre à jour viaPrivateChannel | L’appareil a tenté de s’auto-associer à un canal privé, mais les paramètres du canal ne permettent pas l’auto-association de l’appareil (allow_device_self_set est faux) et le canal n’est pas public. |
| canalMal configuré | Le canal est configuré pour se désactiverle mise à jour automatique par numéro de version (disable_auto_update: 'version_number'), mais le champ min_update_version du bundle est nul, ce qui rend impossible de déterminer quels appareils doivent recevoir la mise à jour. |
| désactiverAutoUpdateMetadata | La mise à jour automatique est désactivée par les métadonnées du numéro de version. Le canal nécessite que la version de l’appareil soit au moins min_update_version, mais la version actuelle de l’appareil est inférieure à ce seuil. |
| désactiverAutoUpdateToMajor | Le paramètre de canal disable_auto_update: 'major' empêche les mises à jour qui augmenteraient le numéro de version majeure (par exemple, empêcher 1.x.x de se mettre à jour vers 2.x.x). |
| désactiverAutoUpdateToMinor | Le paramètre de canal disable_auto_update: 'minor' empêche les mises à jour qui augmenteraient le numéro de version mineure (par exemple, empêcher la mise à jour 1.2.x vers 1.3.x). |
| désactiverAutoUpdateToPatch | Le paramètre de canal disable_auto_update: 'patch' empêche les mises à jour qui augmenteraient le numéro de version du correctif, ou autorise uniquement les mises à jour au niveau du correctif dans la même version majeure.mineure (par exemple, 1.2.3 peut être mis à jour vers 1.2.4 mais pas vers 1.2.2 ou 1.3.0). |
| Bundle manquant | Le forfait attribué à cette chaîne ne contient aucun contenu téléchargeable. Cela signifie que le bundle n’a pas de external_url, pas de r2_path, qu’il ne s’agit pas d’une version intégrée et qu’aucune entrée de manifeste n’est disponible au téléchargement. |
| NoChannelOrOverride | Aucun canal par défaut n’est configuré pour cette application et l’appareil n’a aucun remplacement de canal spécifique attribué. Au moins un doit être présent pour que les mises à jour fonctionnent. |
| tauxLimité | Le débit de l’appareil a été limité en raison de demandes excessives. |
| incompatibilité de clé | La clé publique de chiffrement de l’appareil ne correspond pas à la clé publique utilisée pour chiffrer l’ensemble. Cela se produit lorsque : (1) La clé publique dans capacitor.config.json de votre application est différente de celle utilisée lors du téléchargement du bundle, ou (2) Vous avez effectué une rotation de vos clés de chiffrement mais n’avez pas encore mis à jour tous les appareils. La réponse comprend à la fois deviceKeyId et bundleKeyId (les 4 premiers caractères de chaque clé publique) pour aider à identifier la non-concordance. Pour résoudre ce problème, assurez-vous que la même paire de clés est utilisée à la fois pour le téléchargement des bundles (CLI utilise une clé privée) et dans l’application (capacitor.config.json contient une clé publique). |### Envoyé depuis l’appareil| codes | Descriptif |
| ------------------------------------ | --------------------------------------------------------------------------------- |
| ping | Action de test interne utilisée pour vérifier que le système de statistiques fonctionne correctement. |
| obtenir | Les informations pour télécharger la nouvelle version ont été envoyées à l’appareil. |
| supprimer | One bundle has been deleted on the device. |
| ensemble | A bundle has been set on the device. |
| set_fail | The bundle failed to set. |
| réinitialiser | The device reset to the builtin bundle. |
| télécharger_XX | Un nouveau bundle a été téléchargé - progression indiquée de XX% (par incréments de 10%). |
| download_complete | The new bundle has finished downloading. |
| download_manifest_start | L’appareil a commencé à télécharger le manifeste de mise à jour. |
| download_manifest_complete | L’appareil a terminé le téléchargement du manifeste de mise à jour. |
| download_zip_start | L’appareil a commencé à télécharger l’archive du bundle. |
| download_zip_complete | L’appareil a terminé le téléchargement de l’archive du bundle. |
| download_manifest_file_fail | One manifest entry failed to download; la charge utile des statistiques place version_name sous la forme version:fileName pour identifier l’actif. |
| download_manifest_checksum_fail | The manifest file failed checksum validation. |
| download_manifest_brotli_fail | Le fichier manifeste n’a pas pu être décompressé à l’aide de Brotli. |
| download_fail | The new bundle failed to download. |
| update_fail | Le nouveau bundle a été installé mais n’a pas réussi à appeler notifyAppReady. |
| checksum_fail | The new bundle failed to validate the checksum. Cela peut se produire pour plusieurs raisons : 1) Incompatibilité de type de somme de contrôle : La dernière version de CLI et les plugins (version 5.10.0+, 6.25.0+ ou 7+) utilisent les sommes de contrôle SHA256, tandis que les anciens plugins utilisaient CRC32. Si vous voyez une somme de contrôle échouer, vérifiez si la somme de contrôle est CRC32 (un hachage 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 doivent utiliser SHA256. Si vous voyez des sommes de contrôle CRC32, assurez-vous que la dernière version du plugin est installée localement (le CLI vérifie la version de votre plugin local pour déterminer le type de somme de contrôle à télécharger), puis mettez à niveau votre CLI et téléchargez à nouveau le bundle. 2) Incompatibilité de 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 de l’appareil ne correspond pas à la clé utilisée pour chiffrer le bundle, lele déchiffrement échouera silencieusement et entraînera un échec de la somme de contrôle. Si vous utilisez le chiffrement et voyez checksum_fail, vérifiez que la clé publique dans capacitor.config.json de votre application correspond à la clé privée utilisée pour télécharger le bundle. La mise à niveau vers la version 8.3.0+ du plugin (ou 5/6/7.38.0+) vous donnera à la place une erreur keyMismatch appropriée du serveur, ce qui rendra ce problème plus facile à diagnostiquer. |
| windows_path_fail | Le zip contient des fichiers contenant un chemin Windows illégal |
| canonical_path_fail | Le chemin des fichiers n’est pas canonique |
| répertoire_path_fail | Il y a une erreur dans le chemin des fichiers zip |
| unzip_fail | la décompression a échoué |
| low_mem_fail | Le téléchargement a échoué en raison d’une mémoire insuffisante sur l’appareil |
| app_moved_to_background | L’application est passée à l’état d’arrière-plan. |
| app_moved_to_foreground | L’application est passée au premier plan. |
| décrypter_fail | Échec du décryptage du bundle téléchargé. |
| getChannel | Le canal actuel de l’appareil a été interrogé. |
| setChannel | Un canal a été défini avec succès pour l’appareil. |
| désinstaller | L’application a été désinstallée ou les données Capgo effacées. |
| blocked_by_server_url | Server.url est présent dans la configuration de votre condensateur, cela fait que Capacitor sert l’URL distante et ignore les fichiers locaux, tandis que notre programme de mise à jour est conçu pour fonctionner avec un fichier local, Server.url est considéré par Capacitor Makers comme une mauvaise pratique en production et entraînera de nombreux problèmes et le plugin ne fonctionnera pas correctement. |### Statut du pack
SUCCESS: installation du bundle terminéeERROR: échec de l’installation ou du téléchargementPENDING: Download done, pending releaseDELETED: Bundle deleted, still presented for statsDOWNLOADING: Currently downloading a bundle
Comprendre les journaux des appareils :
Section titled “Comprendre les journaux des appareils :”Commande de débogage :
Section titled “Commande de débogage :”There is a debug command for Capgo cloud users.
npx @capgo/cli@latest app debugThis will allow you to check all events happening in the app and find a solution if updates don’t happen.
###IOS
pour retrouver vos logs sur Xcode
Android :
Section titled “Android :”pour retrouver vos logs sur le studio Android
Journaux d’explications
Section titled “Journaux d’explications”Échec du téléchargement depuis=> identique à download_failnotifyAppReady n'a pas été appelé, restaurer le bundle actuel=> identique à update_fail
Trouver le bundle téléchargé sur votre appareil
Section titled “Trouver le bundle téléchargé sur votre appareil”To debug on iOS, you need to dump the app on your computer, you can do it like this:
Xcode has a built-in feature for inspecting the file system of developer-installed apps on an iOS device.

Pour y parvenir :
- Connectez votre appareil à votre Mac et sélectionnez Fenêtre > Appareils dans la barre de menu Xcode.
- Select your device in the left pane under the Devices section.
- This will show a list of developer-installed apps for that device.
- Select the app you want to inspect and then select the 3 dots icon near the bottom of the screen.
- Here you can view the current file system by selecting download a snapshot of it.

La sélection de Télécharger le conteneur… téléchargera et exportera un instantané du système de fichiers sous forme de fichier .xcappdata que vous pourrez parcourir.

Right-click on this file and select Show Package Contents to open the folder.
Ouvrez le dossier App Data et vous devriez maintenant voir quelques dossiers tels que Documents, Bibliothèque, tmp, etc.

Ensuite vous trouverez une version dans 2 dossiers :
library/NoCloud/ionic_built_snapshots est nécessaire après le redémarrage de l’application
et documents/versions pour le rechargement à chaud
Android
Section titled “Android”Pour déboguer sur Android, vous devez accéder à l’appareil depuis Android Studio :
- Cliquez sur Affichage > Fenêtres d’outils > Explorateur de fichiers de périphérique ou cliquez sur le bouton Explorateur de fichiers de périphérique dans la barre de la fenêtre d’outils pour ouvrir l’Explorateur de fichiers de périphérique.
- Sélectionnez un appareil dans la liste déroulante.
- Open the path data/data/APP_NAME/ where APP_NAME is your app ID.

Recherchez ensuite le dossier versions pour voir toutes les versions