Passer au contenu

Journaux

Compréhension des journaux d'application

Comprend les logs d'application

The page des journaux fournit une histoire détaillée des événements d'actualisation et des informations de diagnostic pour votre application. Cela est crucial pour surveiller le processus d'actualisation, résoudre les problèmes et comprendre comment vos appareils interagissent avec Capgo. En cliquant sur votre application et ensuite En cliquant sur l'onglet « Journaux » (précédemment nommé « mises à jour » dans certaines anciennes captures d'écran ou documentation).

À partir de là, vous devriez voir une page similaire à celle-ci, affichant une liste d'entrées de journal :

Vue d'ensemble de la page des journaux montrant l'interface principale
Vue d'ensemble de la page des journaux

L'interface de la page des journaux comprend :

  1. Onglet des journaux - L'onglet de navigation pour accéder à la vue des journaux
  2. Réinitialiser - Rafraîchir la liste des journaux avec les données les plus récentes
  3. Intervalle de temps & Filtres d'actions - Filtrez les journaux par plage de dates et type d'action (voir les sections ci-dessous)

Chaque ligne montre :

  • Timestamp (UTC)
  • ID de l'appareil
  • Action code (ce qui s'est passé)
  • Nom de la version (bundle ou builtin)

Cliquez sur une ligne pour accéder à la page de détails de l'appareil pour l'ensemble de l'historique.

Vous pouvez filtrer les journaux par une période de temps spécifique en utilisant le sélecteur de date :

Sélecteur de plage de dates pour le filtrage des journaux
Filtre de plage de dates
  1. Préférences rapides - Sélectionnez des plages de temps courantes : Dernières 1h, 3h, 6h ou 12h
  2. Heure de début - Définissez une heure de début personnalisée pour la plage
  3. Heure de fin - Définissez une heure de fin personnalisée pour la plage
  4. Calendrier - Sélectionnez des dates spécifiques en utilisant la vue du calendrier

Cliquez sur « Sélectionner » pour appliquer la plage de dates choisie, ou sur « Annuler » pour fermer le sélecteur.

Le menu déroulant Actions vous permet de filtrer les journaux par des types d'événements spécifiques :

Menu déroulant Actions pour le filtrage des journaux par type d'événement
Filtre d'Actions

Les filtres d'action disponibles incluent :

  • Cœur de dispositif - Contrôles de santé périodiques des appareils
  • Suppression de version demandée - Lorsqu'une version de bundle est supprimée
  • Réinitialiser à la version par défaut - Lorsqu'un appareil revient à la version intégrée
  • Version installée avec succès - Installation de la version intégrée réussie
  • Une nouvelle version est envoyée à l'appareil - Lorsque Capgo envoie une mise à jour à un appareil
  • Installation de la version échouée - Lorsque l'installation de la version intégrée échoue

Utilisez la zone de recherche en haut pour trouver rapidement les types d'actions spécifiques. Vous pouvez sélectionner plusieurs actions pour afficher les journaux correspondant à l'un ou plusieurs des types sélectionnés.

Heure (UTC)ID de l'appareilActionVersionCe qu'il vous dit
2025-01-14 10:00:01A1B2C3get2.4.1Le dispositif a demandé à Capgo si une mise à jour est disponible
2025-01-14 10:00:03A1B2C3download_manifest_start2.4.1La mise à jour du manifest a démarré; SDK va télécharger des fichiers
2025-01-14 10:00:07A1B2C3download_402.4.1Téléchargement du bundle en cours (40%)
2025-01-14 10:00:12A1B2C3download_zip_complete2.4.1Le zip a terminé de télécharger
2025-01-14 10:00:13A1B2C3set2.4.1Le bundle a été installé et marqué comme prochain à exécuter
2025-01-14 10:05:00B9C8D7disableAutoUpdateToMajor1.9.0La politique de canal a bloqué un saut vers 2.x
2025-01-14 10:05:05B9C8D7rateLimitedIntégréLe dispositif a atteint la limite de requêtes; SDK se retire jusqu'à redémarrage

Pour vous aider à comprendre ce que les journaux vous disent, voici des séquences d'exemples montrant les véritables parcours de mise à jour des appareils :

Voici ce que ressemble une mise à jour saine dans vos journaux :

HeureID de l'appareilActionVersionCe que cela signifie
10:00:01a1b2c3d4get1.2.0L'appareil a vérifié les mises à jour et a reçu la version 1.2.0
10:00:02a1b2c3d4download_101.2.0Téléchargement commencé, 10 % terminé
10:00:03a1b2c3d4download_501.2.0Telecharger à 50%
10:00:05a1b2c3d4download_complete1.2.0Telechargement terminé avec succès
10:00:06a1b2c3d4set1.2.0Bundle installé et activé

Le dispositif est déjà à jour

Titré “Le dispositif est déjà à jour”

Lorsqu'un dispositif vérifie mais a déjà la dernière version :

TempsID du dispositifActionVersionCela signifie
14:30:00e5f6g7h8noNew1.2.0Le dispositif est déjà à la dernière version, pas de mise à jour nécessaire

Lorsqu'un update échoue et que le dispositif revient en arrière :

TempsID du DispositifActionVersionCe que cela signifie
11:15:00i9j0k1l2get1.3.0Le dispositif a reçu les informations d'update
11:15:02i9j0k1l2download_complete1.3.0Téléchargement terminé
11:15:03i9j0k1l2set1.3.0L'archive a été configurée
11:15:10i9j0k1l2update_fail1.3.0L'application s'est crashée ou notifyAppReady() n'était pas appelé - rollback déclenché
11:15:11i9j0k1l2resetintégréLe dispositif est revenu à la version intégrée

Action nécessaire: Vérifiez que votre application appelle notifyAppReady() après une initialisation réussie. Voir la documentation du plugin pour plus de détails.

Lorsque des problèmes de réseau empêchent le téléchargement :

TempsID de l'appareilActionVersionCe que cela signifie
09:45:00m3n4o5p6get1.2.0L'appareil a reçu des informations d'actualisation
09:45:01m3n4o5p6download_301.2.0Le téléchargement a commencé mais…
09:45:15m3n4o5p6download_fail1.2.0Échec du téléchargement (délai de connexion, perte de connexion, etc.)

Action nécessaire: L'appareil réessayera automatiquement à la prochaine mise à jour de l'application. Aucune action requise à moins que cela se produise fréquemment.

Lorsque votre compte atteint sa limite d'appareil :

DuréeID de l'appareilActionVersionCe que cela signifie
16:00:00q7r8s9t0needPlanUpgrade-Cet appareil ne recevra pas de mises à jour jusqu'à ce que vous mettiez à niveau ou que le cycle de facturation se réinitialise

Action nécessaire: Augmentez votre plan ou attendez le prochain cycle de facturation.

Lorsque les paramètres du canal empêchent une mise à jour :

TempsID de l'appareilActionVersionCe que cela signifie
12:00:00u1v2w3x4disableAutoUpdateToMajor2.0.0L'appareil sur v1.x ne peut pas se mettre à jour automatiquement vers v2.x (le saut de version majeure est bloqué)
12:05:00y5z6a7b8disableEmulator1.2.0Un émulateur a été détecté, et le canal bloque les émulateurs
12:10:00c9d0e1f2disableDevBuild1.2.0Un build de développement a été détecté, et le canal bloque les builds de développement

Action nécessaire: Ces protections sont intentionnelles. Si vous voulez autoriser ces mises à jour, modifiez vos paramètres de canal.

Ces codes proviennent de stats_action l'énumération utilisée par le tableau de bord API (capgo/src/types/supabase.types.ts). Si vous voyez un nouveau code dans l'interface utilisateur, il a été émis par le SDK ou backend et validé contre cette liste.

Parcours heureux & cycle de vie

Code(s)Signification
getLe dispositif a demandé à Capgo le manifeste de canal actuel
download_manifest_start, download_manifest_completeLe téléchargement du manifeste a commencé / terminé (pour les delta ou les ensembles de fichiers multi)
download_zip_start, download_zip_completeLe téléchargement d'un fichier zip a commencé / terminé
download_10download_90Les jalons de progression de téléchargement
download_0Marqueur de progression à 0% pour le premier événement de progression
download_completeBundle téléchargé intégralement
setBundle préparé pour le lancement suivant
resetAppareil réinitialisé sur le bundle intégré
deleteBundle supprimé de la mémoire locale
uninstallDétecté : l'application a été désinstallée
app_moved_to_foreground, app_moved_to_backgroundÉvénements de cycle de vie de l'application enregistrés par SDK
pingVérification de santé/heartbeat depuis le dispositif
setChannel, getChannelCanal surchargé ou récupéré via l'appel SDK

Correction rapide de politique de blocage / de débit

Section intitulée « Correction rapide de politique de blocage / de débit »
CodePourquoi cela se produitWhat to do next
invalidIpCapgo a détecté un trafic qui ressemble à du trafic de bot (IP Google/infrastructure cloud).Ignorer sur les utilisateurs réels ; réessayer depuis des appareils réels et des réseaux normaux, ou vérifier après quelques temps.
needPlanUpgradeL'organisation a atteint la limite de plan/appareil.Augmenter le plan dans le tableau de bord ou attendre le prochain cycle de facturation.
semver_errorLa version de l'application native dans la configuration est manquante ou non valide (x.y.z).Fixer plugins.CapacitorUpdater.version à une version valide, puis la vérifier dans le Testeur de SemVer et reconstruire l'application.
disablePlatformIosL'iOS est désactivé dans la politique de canal.Si cela était accidentel, activez l'iOS dans ce canal et républiez la configuration de routage. Si vous avez intentionnellement bloqué l'iOS dans ce track, maintenez-le éteint et déplacez les builds iOS dans un canal séparé.
disablePlatformAndroidLe Android est désactivé dans la politique de canal.Si cela était accidentel, activez Android dans ce canal et républiez la mise en route. Si vous bloquez intentionnellement Android dans ce track, gardez-le éteint et déplacez les builds Android dans un canal séparé.
disableAutoUpdateLe mode de mise à jour automatique du canal bloque ce style de mise à jour.Modifiez la politique de mise à jour automatique du canal (majeur/minor/patch/metadata/aucun) pour permettre votre lancement prévu.
disableAutoUpdateUnderNativeLe canal est configuré pour bloquer les mises à jour plus anciennes que la base de l'appareil.Envoie une version à partir de la base native ou désactivez cette protection sous-native.
disableAutoUpdateMetadataLe canal nécessite min_update_version des métadonnées et l'application est plus ancienne.Configurez min_update_version pour le bundle cible ou la version de sortie à partir d'une version native plus récente.
disableAutoUpdateToMajorLe canal bloque les sauts de version majeure.Conservez les versions majeures dans la même stratégie de canal ou autorisez les sauts majeurs pour ce track.
disableAutoUpdateToMinorThe canal bloque les sauts de version mineure.Conservez les versions mineures dans la même stratégie de canal, ou autorisez les sauts mineurs pour cette piste.
disableAutoUpdateToPatchLe canal bloque les sauts de niveau de patch pour cette flux.Alignez votre rythme de publication, ou ouvrez les sauts de patch dans la politique de canal pour cette piste.
disableEmulatorMises à jour de l'émulateur ne sont pas autorisées pour ce canal.Si c'était une erreur, activez les mises à jour de l'émulateur dans un canal de test où vous validez les émulateurs. Si c'est intentionnel, gardez ce canal bloqué pour les émulateurs et utilisez un autre canal pour les builds d'émulateurs.
disableDevBuildMises à jour de développement sont bloquées pour ce canal.Si c'était une erreur, autorisez les mises à jour de développement ou déplacez ce dispositif dans un canal autorisant les mises à jour de développement. Si c'est intentionnel, gardez ce canal verrouillé aux seuls builds de publication.
disableProdBuildUn build de dispositif en mode de production appelé /updates, tandis que votre canal l'a bloqué.Si c'était une erreur, autorisez les mises à jour de production dans ce canal et républiez. Si c'est intentionnel, gardez la restriction et envoyez les builds de production dans le canal/build approprié.
cannotGetBundleCapgo n'a pas pu construire une URL de téléchargement valide pour le bundle sélectionné.Ré-uploader le bundle ou régénérer les manifestes et vérifier les paramètres du bundle R2/public.
cannotUpdateViaPrivateChannelL'application a tenté de se basculer vers un canal privé qui ne permet pas la réaffectation.Activer allow_device_self_set sur le canal ou basculer vers un canal public/autorisé.
channelMisconfiguredLa règle d'actualisation automatique du canal manque de données requises (version_number sans min_update_version).Remplir la configuration manquante pour cette règle ou basculer vers un mode d'actualisation automatique plus simple.
missingBundleLe bundle n'a pas de contenu téléchargeable (manquant external_url/r2_path et aucun manifeste).Reconstruire/re-uploader la version et vérifier que le bundle a un contenu de fichier réel.
NoChannelOrOverrideAucun canal ne correspond à cet appareil (pas de cloud par défaut + pas de fallback de configuration + pas de surcouche).Définir un canal par défaut dans le tableau de bord ou garder un test defaultChannel In ce build.
rateLimitedNombre de mises à jour/appel de canal trop élevé en un court laps de temps (souvent boucle de rendu setChannel/getChannel).Arrêtez d'appeler dans le rendu. Appelez uniquement lors d'une action de l'utilisateur. Utilisez defaultChannel In capacitor.config.
keyMismatchLes identifiants des clés de chiffrement de l'application et du bundle diffèrent (device_key_id vs bundle_key_id).Dans la console, comparez les identifiants de clés de l'appareil et du bundle. Si ils diffèrent, publiez avec la même clé et la version correspondante du plugin CLI ; l'encodage de la clé peut différer entre les versions.
disableDeviceUn téléphone/tablette réel a été bloqué car ce canal est configuré pour bloquer les appareils réels.Si cela était accidentel, activez les mises à jour d'appareils réels dans ce canal. Si cela était intentionnel, maintenez-le bloqué et dirigez les appareils réels vers un autre canal.
disablePlatformElectronElectron est bloqué dans ce canal.Si cela était accidentel, activez Electron dans ce canal et républiez la configuration de routage. Si cela était intentionnel, maintenez-le bloqué et dirigez les utilisateurs Electron vers un canal dédié.
customIdBlockedUn ID d'appareil personnalisé a été envoyé, mais cette application ne prend pas en charge les ID personnalisés.Désactivez l'envoi d'ID personnalisé ou activez les ID personnalisés uniquement si votre flux de travail le nécessite.
blocked_by_server_urlL'application a server.url configurée, donc Capacitor charge des URL distantes au lieu de fichiers locaux.Supprimer/effacer server.url pour les builds de production et gardez les payloads d'actualisation locaux.
backend_refusalL'actualiseur est v4, qui n'est plus accepté par le backend.Mettez à jour le plugin/CLI à v5+ (préférez v8), avec Capacitor v5+, puis rebuild et republiez les métadonnées du bundle.
Blocage de la configuration ou de la politique
Code(s)Pourquoi l'update a été bloquée
disableAutoUpdate, disableAutoUpdateToMajor, disableAutoUpdateToMinor, disableAutoUpdateToPatch, disableAutoUpdateMetadata, disableAutoUpdateUnderNativeLa stratégie de canal interdit cela saut de version semver
disablePlatformIos, disablePlatformAndroidLa plateforme est désactivée sur le canal
disableDevBuild, disableEmulatorLes builds de développement ou les émulateurs ne sont pas autorisés
disableProdBuild, disableDevice, disablePlatformElectronLes builds de production, les appareils réels ou Electron sont bloqués pour ce canal.
customIdBlockedLes identifiants d'appareil personnalisés ne sont pas acceptés pour cette application.
cannotUpdateViaPrivateChannel, NoChannelOrOverride, channelMisconfiguredLa sélection ou la surcharge du canal a échoué
missingBundle, cannotGetBundleLe manifeste fait référence à un bundle Capgo qui ne peut pas servir
needPlanUpgradeL'org a atteint sa limite de plan/appareil
rateLimitedTrop de requêtes; SDK ralentit jusqu'à redémarrage
blocked_by_server_url, backend_refusal, invalidIpLa règle côté serveur a bloqué la demande

Échecs de téléchargement / intégrité / installation

Code(s)Signification
download_failÉchec du téléchargement du bundle (erreur de réseau ou de réponse)
download_manifest_file_fail, download_manifest_checksum_fail, download_manifest_brotli_failLe fichier de manifeste ne pouvait pas être récupéré ou validé
checksum_fail, checksum_requiredLa vérification d'intégrité a échoué ou le checksum manque
unzip_fail, directory_path_fail, canonical_path_fail, windows_path_failLa validation du système de fichiers ou de dézipping a échoué
decrypt_failLa déchiffrement a échoué (bundle chiffré)
update_failLe bundle a été installé mais l'application n'a jamais appelé notifyAppReady(); rollback déclenché
download_zip_* avec aucun appel ultérieur setLe téléchargement est terminé mais la phase d'installation n'a jamais été complétée
Code(s)Signification
app_crash, app_crash_nativeÉvénements de panne provenant des couches de runtime JavaScript ou native. Les métadonnées incluent souvent des informations de pile, de source et de version active.
app_anrL'application Android a signalé un Application Not Responding.
app_killed_low_memory, app_killed_excessive_resource_usageLa terminaison du processus d'application due à des limites de mémoire ou de ressources.
app_initialization_failure, app_memory_warningL'initialisation a été interrompue ou la pression de mémoire a été observée avant le runtime normal.
webview_javascript_error, webview_unhandled_rejection, webview_resource_error, webview_security_policy_violation, webview_unclean_restart, webview_render_process_gone, webview_content_process_terminatedLes erreurs de cycle de vie de WebView et de rendu JavaScript. Installez Sentry dans les deux couches JavaScript et native pour capturer les traces de pile, le contexte de session/ appareil et l'URL/état pour des corrections plus rapides.
os_version_changed, native_app_version_changedLa version de l'OS ou de l'application native a changé ; cela aide à séparer les effets de déploiement au niveau de la plateforme des comportements du paquet de bundle web.

➡️ Besoin d'une guidance plus approfondie par code ? Consultez Guide de référence et de débogage complet du journal Code.

Si vous cliquez sur une entrée de journal spécifique, cela vous emmènera généralement à la page du dispositif. Cela vous permet de voir l'ensemble de l'historique pour ce dispositif en particulier, ce qui peut être très utile pour diagnostiquer les problèmes spécifiques au dispositif ou comprendre son parcours de mise à jour.

Si vous utilisez les journaux pour planifier des tableaux de bord et des opérations API , connectez-le à l' API Vue d'ensemble pour les détails d'implémentation dans API Vue d'ensemble, Introduction pour les détails d'implémentation dans Introduction, API Clés pour les détails d'implémentation dans API Clés, Appareils pour les détails d'implémentation dans Appareils, et Bundles pour les détails d'implémentation dans Bundles.