web-dev-qa-db-fra.com

Comment puis-je obtenir les journaux de la console à partir du simulateur iOS?

Je veux voir ce qui se passe dans le simulateur iOS si je ne teste pas l'application dans Xcode.

Par exemple, si j'ouvre un lien dans le simulateur Safari, voir ce qui se passe dans la console, .__ ou si j'installe une application Web, voir les liens que j'appuie dans la console.

Comment puis-je faire ceci?

Je veux le voir dans Xcode ou Terminal, mais ce n'est pas un problème si j'ai besoin d'un autre logiciel.

201
user1335015

simulateur iOS> Barre de menus> Débogage> Ouvrir le journal système


Vieilles manières:

iOS Simulator imprime ses journaux directement sur stdout afin que vous puissiez voir les journaux mélangés avec les journaux du système. 

Ouvrez le terminal et tapez: tail -f /var/log/system.log

Ensuite, lancez le simulateur.

MODIFIER:

Cela a cessé de fonctionner sur Mavericks/Xcode 5. Vous pouvez maintenant accéder aux journaux du simulateur dans son propre dossier: ~/Library/Logs/iOS Simulator/<sim-version>/system.log

Vous pouvez soit utiliser le fichier Console.app pour voir cela, ou simplement faire une queue (iOS 7.0.3 64 bits par exemple):

tail -f ~/Library/Logs/iOS\ Simulator/7.0.3-64/system.log

EDIT 2:

Ils sont maintenant situés dans ~/Library/Logs/CoreSimulator/<simulator-hash>/system.log

tail -f ~/Library/Logs/CoreSimulator/<simulator-hash>/system.log

247
fbernardo

Vous pouvez afficher la console du simulateur iOS via le bureau Safari. Cela ressemble à la façon dont vous utilisez Safari sur le bureau pour afficher la console des périphériques iOS physiques.

Chaque fois que le simulateur est en cours d'exécution et qu'une page Web est ouverte, une option du menu Développement du navigateur Safari sur le bureau vous permet de voir la console du simulateur iOS:

Develop -> iPhone Simulator -> nom du site

200
Ben Jackson

Il y a une option dans le simulateur pour ouvrir la console

Debug > Open System Log

ou utilisez le 

keyboard shortcut: ⌘/

 Simulator menu screenshot

102
Mark Bridges

iOS 8 et iOS 9

Sous iOS 8 et iOS 9, cet emplacement est maintenant:

~/Library/Logs/CoreSimulator/<DEVICE_CODE>

Donc, ce qui suit fonctionnera:

tail -f ~/Library/Logs/CoreSimulator/<DEVICE_CODE>/system.log

La valeur DEVICE_CODE peut être trouvée via la commande de console suivante:

instruments -s devices
89
viteinfinite

Vous ne devriez pas compter sur instruments -s. L'outil officiellement pris en charge pour utiliser les simulateurs à partir de la ligne de commande est xcrun simctl.

Le répertoire de journal d'un périphérique peut être trouvé avec xcrun simctl getenv booted SIMULATOR_LOG_ROOT. Cela sera toujours correct même si l'emplacement change.

Maintenant que les choses passent à os_log, il est plus facile d'ouvrir Console.app sur le Mac hôte. Les simulateurs démarrés doivent apparaître comme une source de journal à gauche, tout comme les périphériques physiques. Vous pouvez également exécuter des commandes de journalisation dans le simulateur démarré:

# os_log equivalent of tail -f
xcrun simctl spawn booted log stream --level=debug

# filter log output
xcrun simctl spawn booted log stream --predicate 'processImagePath endswith "myapp"'
xcrun simctl spawn booted log stream --predicate 'eventMessage contains "error" and messageType == info'

# a log dump that Console.app can open
xcrun simctl spawn booted log collect

# open location where log collect will write the dump
cd `xcrun simctl getenv booted SIMULATOR_SHARED_RESOURCES_DIRECTORY`

Si vous souhaitez utiliser les outils de développement Safari (y compris la console JS) avec une page Web dans le simulateur : Démarrez l’un des simulateurs, ouvrez Safari, puis accédez à Safari sur votre Mac et affichez Simulateur dans le menu.

Vous pouvez ouvrir une URL dans le simulateur en la faisant glisser depuis la barre d'adresse de Safari et en la déposant dans la fenêtre du simulateur. Vous pouvez également utiliser xcrun simctl openurl booted <url>.

16
russbishop

Si vous utilisez Swift , rappelez-vous que println sera uniquement imprimé dans le journal de débogage (qui apparaît dans la zone de débogage de xCode). Si vous souhaitez imprimer sur le fichier system.log, vous devez utiliser NSLog comme auparavant.

Vous pouvez ensuite afficher le journal du simulateur via son menu, Debug> Ouvrir le journal système ... (cmd + /)

15
cprcrack

la queue /var/log/system.log n'a pas fonctionné pour moi. J'ai trouvé mes journaux en utilisant Console.app. Ils étaient en

~/Library/Logs/iOS Simulator/{version}/system.log

11
djibouti33

XCode> 6.0 ET iOS> 8.0 Le script ci-dessous fonctionne si vous avez la version XCode> 8.0.

J'utilise le petit script ci-dessous pour relier les journaux du simulateur à la console système.

#!/bin/sh
sim_dir=`xcrun instruments -s | grep "iPhone 6 (8.2 Simulator)" | awk {'print $NF'} | tr -d '[]'`
tail -f ~/Library/Logs/CoreSimulator/$sim_dir/system.log

Vous pouvez transmettre le type de simulateur utilisé dans le Grep en tant qu'argument. Comme mentionné dans les articles ci-dessus, il existe une commande simctl and instruments permettant d'afficher le type de simulateurs utilisables en fonction de la version de Xcode.

xcrun instruments -s

OU 

xcrun simctl list

Vous pouvez maintenant passer le type de simulateur de code de périphérique OR en tant qu'argument au script et remplacer le "iPhone 6 (Simulateur 8.2)" à l'intérieur de grep par $ 1.

7
Gurubaran

Vous pouvez utiliser une application système Console sur votre Mac. Il suffit de choisir un modèle intéressant dans les appareils.

 enter image description here

0
yoAlex5

Je peux ouvrir le journal directement via le simulateur iOS: Debug -> Open System Log... Je ne sais pas quand cela a été introduit, il est donc possible qu'il ne soit pas disponible pour les versions antérieures.

0
bompf