Retour à l'accueil

Collecte de journaux iOS : 7 méthodes pour le débogage

L'article décrit 7 méthodes pour collecter les journaux iOS : .ips via sysdiagnose, log collect CLI, Console. Exemples de plantages EXC_BAD_ACCESS, JetsamEvent, erreurs réseau. Pour analyser performances et bugs sans Xcode.

7 méthodes de journaux iOS : sysdiagnose et CLI
Advertisement 728x90

Débogage des applications iOS : 7 méthodes pour collecter les journaux système

Les journaux iOS capturent les événements internes de l'application : requêtes réseau, erreurs, gels d'interface utilisateur et plantages. Ils aident à identifier précisément les problèmes sans indicateurs visuels. Exemples : EXC_BAD_ACCESS dans Pokemon GO, E/S sur le thread principal dans Console, et délais d'attente CFNetwork dans log collect.

Les journaux sont divisés en rapports de plantage (EXC_BAD_ACCESS, SIGSEGV) et en rapports diagnostiques (performances, réseau, mémoire). Les testeurs les utilisent pour vérifier les appels de fonctions, analyser les interactions avec le serveur et découvrir les bugs cachés.

Fichiers .ips via sysdiagnose

Les rapports générés automatiquement sont disponibles dans Réglages → Confidentialité et sécurité → Analyse et améliorations → Données d'analyse. Format : event_type_date_time.ips, par exemple AtiClient-2024-08-14-152242.ips.

Google AdInline article slot

Types de rapports :

  • CrashReport : exceptions et signaux (par ID de bundle, p. ex. VKClient).
  • JetsamEvent : déchargement dû à une pénurie de RAM (fuites mémoire).
  • Watchdog : délais de lancement ou blocages.
  • SpinReport : utilisation élevée du CPU sans réponse (impasses).
  • NotificationServiceExtension : échecs des notifications push.

Génération manuelle : appuyer simultanément sur les boutons de volume + bouton latéral (1–1,5 s), fichier stacks.

Exporter via AirDrop. Les fichiers sont automatiquement supprimés — collectez-les immédiatement.

Google AdInline article slot

Cas d'utilisation : échecs sans Xcode, analyse mémoire/réseau.

log collect CLI : Outil en ligne de commande pour les archives

Nécessite Xcode Command Line Tools, connexion USB, Terminal. Récupère l'UDID via libimobiledevice.

Collecte les journaux jusqu'à 10 jours (vs sysdiagnose — instantané au moment). Plus rapide, automatable, taille contrôlable.

Google AdInline article slot

Commande de base :

sudo log collect --device-udid <UDID> --last 10m --output iphone_logs.logarchive

Paramètres clés :

  • --output ~/Desktop/iphone_logs.logarchive — chemin de sauvegarde.
  • --last 30m / 2h / 1d — période temporelle.
  • --start "2025-08-20" --end "2025-08-20 14:30:00" — dates.
  • --size 100m — limite de taille.
  • --device-udid A1B2C3D4R5F8G8H8I1J0 — par UDID (préféré).

Analyse :

log show --archive system_logs.logarchive --predicate 'process == "AtiClient" AND messageType == "error"'

Filtres : processus, erreurs, période temporelle.

Comparaison avec sysdiagnose :

| Paramètre | log collect | sysdiagnose |

|---------------|-------------|-------------|

| Temps | jusqu'à 10 jours | jour de génération |

| Automatisation| CLI | manuel |

| Taille | contrôlable | importante |

| Vitesse | rapide | 10–15 min |

Cas d'utilisation : bugs instables, tendances de performance, contexte de plantage.

Console : Surveillance en direct

Xcode → Fenêtre → Appareils et simulateurs → Ouvrir Console. Filtres par processus (p. ex. AtiClient). Affiche en temps réel : Hang Risk sur le thread principal, échecs libRPAC.dylib.

Exemple de journal :

Hang Risk com.apple.runtime-issues
message: This method does I/O on the main thread...
libRPAC.dylib failure 19:12:18.350727+0300 AtiClient

Exporter vers .logarchive pour analyse hors ligne.

Méthodes 4–7 : Collecte avancée

  • Xcode Devices and Simulators : journaux par UDID, filtres par sous-système (CFNetwork, Jetsam).
  • libimobiledevice : idevicesyslog pour diffuser les journaux en continu sans Xcode.
idevicesyslog -u <UDID>
  • os_log dans le code : journaux personnalisés via os_log_t et API os_log. Niveaux : debug, info, error.
  • Instruments : profilage avec journaux (Time Profiler, Leaks).

Points clés

  • .ips pour les échecs instantanés (CrashReport, Jetsam).
  • log collect pour les tendances à long terme (jusqu'à 10 jours, CLI).
  • Console pour le débogage en direct de l'E/S sur le thread principal.
  • UDID requis pour cibler précisément l'appareil.
  • Combiner les méthodes : sysdiagnose + log show pour une analyse complète.

— Editorial Team

Advertisement 728x90

Lire ensuite