Existe-t-il un moyen d'afficher le journal de la console en temps réel pour afficher NSLog et d'autres messages de débogage en temps réel, comme adb logcat?
Existe-t-il un moyen d'afficher le journal de la console en temps réel pour afficher NSLog et d'autres messages de débogage en temps réel, comme adb logcat?
Réponses:
La solution documentée par Apple dans les questions et réponses techniques QA1747 Débogage des applications iOS déployées pour Xcode 6 est:
print
les instructions ne vont pas au journal, seulement à stdout
. Utilisez NSLog
plutôt. Ou il peut être possible de rediriger stdout
vers un fichier avec du code ajouté. Les plantages sont enregistrés et peuvent être consultés à l'aide du bouton "Afficher les journaux de l'appareil".
EDIT: Veuillez utiliser la solution @cbowns - deviceconsole est compatible avec iOS9 et beaucoup plus facile à utiliser.
Il s'agit d'un programme open source qui affiche le journal système de l'iDevice dans Terminal (d'une manière similaire à tail -F). Aucun jailbreak n'est requis, et la sortie est entièrement grep'able afin que vous puissiez filtrer pour voir uniquement la sortie de votre programme. Ce qui est particulièrement intéressant avec cette solution, c'est que vous pouvez afficher le journal, que l'application ait été lancée ou non en mode débogage à partir de XCode.
Voici comment:
Récupérez le binaire libimobiledevice pour Mac OS X depuis mon compte github à l' adresse https://github.com/benvium/libimobiledevice-macosx/zipball/master
Suivez les instructions d'installation ici: https://github.com/benvium/libimobiledevice-macosx/blob/master/README.md
Connectez votre appareil, ouvrez Terminal.app et tapez:
idevicesyslog
Up affiche un affichage en temps réel du journal système de l'appareil.
Étant donné qu'il s'agit d'une application console, vous pouvez filtrer le journal à l'aide de commandes unix, telles que grep
Par exemple, consultez tous les messages du journal d'une application particulière:
idevicesyslog | grep myappname
Tiré de mon blog à http://pervasivecode.blogspot.co.uk/2012/06/view-log-output-of-any-app-on-iphone-or.html
No device found, is it plugged in?
brew uninstall libimobiledevice ideviceinstaller && brew install --HEAD libimobiledevice ideviceinstaller
Deux options:
libimobiledevice est installable via homebrew et fonctionne très bien. Son idevicesyslog
outil fonctionne de la même manière que deviceconsole
(ci-dessous), et il prend en charge l'affichage sans fil du syslog de votre appareil (!)
J'ai écrit plus à ce sujet sur Tumblr tl; dr:
brew install libimobiledevice
idevice_id --list // list available device UDIDs
idevicesyslog -u <device udid>
avec l'appareil connecté via USB ou disponible sur le réseau sans fil local.
À partir de 2013: deviceconsole de rpetrich est une solution beaucoup moins farfelue que l'ideviceconsole ci-dessus. Mon fork de celui-ci se construit et s'exécute dans Xcode 5 hors de la boîte, et l'action Build installera le binaire /usr/local/bin
pour en faciliter l'utilisation.
Comme information supplémentaire utile, je l'utilise dans le style suivant, ce qui facilite la recherche de l'appareil que je veux dans mon historique de shell et supprime les >
lignes inutiles qui deviceconsole
s'impriment.
deviceconsole -d -u <device UDID> | uniq -u && echo "<device name>"
libimobiledevice
. (La visualisation des journaux avec et sans fil fonctionne avec mon Mac sur 10.11 et mon iPhone sur iOS 10.2)
brew install --HEAD libimobiledevice
. A travaillé pour moi.
Ouvrez simplement l'application Console.app
sur mac osX.
Vous pouvez le trouver sous Applications
> Utilities
> Console
.
Sur le côté gauche de l'application, tous vos appareils connectés sont répertoriés.
Essayez la console iOS gratuite . Téléchargez, lancez, connectez votre appareil - et voilà!
Console.app
[qui est livré nativement sur macOS]?
C'est peut-être ce que vous recherchez: Xcode Organizer
appareil> la sortie du terminal est sur l'application de configuration iPhone
Vous avez trois options:
Donc, pour obtenir le 2º, il vous suffit d'installer syslogd et OpenSSH à partir de Cydia, redémarrer nécessaire après pour lancer syslogd; maintenant, ouvrez simplement une session ssh sur votre appareil (via un terminal ou un putty sous Windows), et tapez "tail -f / var / log / syslog". Et voilà, journal du système sans fil en temps réel.
Si vous souhaitez essayer le 3º, recherchez simplement "dup2" en ligne, c'est un appel système.
Pour afficher la console de votre appareil iOS dans Safari sur votre Mac (Mac uniquement apparemment):
L'inspecteur de Safari apparaîtra montrant une console pour votre appareil iOS.
Comme alternative, vous pouvez utiliser un outil de journalisation à l' écran tel que le journal du téléscripteur pour afficher les journaux sans avoir un accès (pratique) à la console.
Utilities/Console.app
?