[ios] iOS 시뮬레이터에서 콘솔 로그를 얻으려면 어떻게해야합니까?

Xcode에서 앱을 테스트하지 않으면 iOS 시뮬레이터에서 어떤 일이 발생하는지 알고 싶습니다.

예를 들어 Safari 시뮬레이터에서 링크를 열면 콘솔에서 어떤 일이 발생하는지 확인하거나 웹 응용 프로그램을 설치하면 콘솔에서 누르는 링크를 확인하십시오.

어떻게해야합니까?

Xcode 또는 Terminal에서보고 싶지만 다른 비트의 소프트웨어를 사용해야하는 경우 문제가되지 않습니다.



답변

iOS 시뮬레이터> 메뉴 막대> 디버그> 시스템 로그 열기


옛날 방식 :

iOS 시뮬레이터는 로그를 stdout에 직접 인쇄하므로 시스템 로그와 로그가 혼합 된 것을 확인할 수 있습니다.

터미널을 열고 다음을 입력하십시오. tail -f /var/log/system.log

그런 다음 시뮬레이터를 실행하십시오.

편집하다:

Mavericks / Xcode 5에서 작동이 중지되었습니다. 이제 자체 폴더에서 시뮬레이터 로그에 액세스 할 수 있습니다. ~/Library/Logs/iOS Simulator/<sim-version>/system.log

Console.app을 사용하여 이것을 보거나 꼬리를 할 수 있습니다 (예 : iOS 7.0.3 64 비트).

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

편집 2 :

그들은 지금 ~/Library/Logs/CoreSimulator/<simulator-hash>/system.log

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


답변

데스크탑 Safari를 통해 iOS 시뮬레이터의 콘솔을 볼 수 있습니다. 데스크탑 Safari를 사용하여 실제 iOS 장비의 콘솔을 보는 방법과 유사합니다.

시뮬레이터가 실행 중이고 웹 페이지가 열릴 때마다 데스크탑 사파리의 개발 메뉴 아래에 iOS 시뮬레이터 콘솔을 볼 수있는 옵션이 있습니다.

개발-> iPhone 시뮬레이터-> 사이트 이름


답변

시뮬레이터에는 옵션을 열 수 있습니다. console

Debug > Open System Log

또는

keyboard shortcut: ⌘/

시뮬레이터 메뉴 스크린 샷


답변

iOS 8 및 iOS 9

iOS 8 및 iOS 9에서이 위치는 다음과 같습니다.

~/Library/Logs/CoreSimulator/<DEVICE_CODE>

따라서 다음이 작동합니다.

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

DEVICE_CODE값은 다음 콘솔 명령을 통해 찾을 수 있습니다.

instruments -s devices


답변

당신은 의지해서는 안됩니다 instruments -s. 커맨드 라인에서 시뮬레이터 작업을 위해 공식적으로 지원되는 도구는 xcrun simctl입니다.

장치의 로그 디렉토리는로 찾을 수 있습니다 xcrun simctl getenv booted SIMULATOR_LOG_ROOT. 위치가 변경 되더라도 항상 정확합니다.

이제 상황이 os_log바뀌면서 호스트 Mac에서 Console.app를 여는 것이 더 쉬워졌습니다. 부팅 된 시뮬레이터는 실제 장치와 마찬가지로 왼쪽에 로그 소스로 표시되어야합니다. 부팅 된 시뮬레이터에서 로그 명령을 실행할 수도 있습니다.

# 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`

시뮬레이터의 웹 페이지에서 Safari 개발자 도구 (JS 콘솔 포함)를 사용하려면 시뮬레이터 중 하나를 시작하고 Safari를 연 다음 Mac에서 Safari로 이동하면 메뉴에 시뮬레이터가 표시됩니다.

Safari 주소 표시 줄에서 URL을 드래그하여 시뮬레이터 창에 놓아 시뮬레이터에서 URL을 열 수 있습니다. 을 사용할 수도 있습니다 xcrun simctl openurl booted <url>.


답변

당신이 사용하는 경우 스위프트 , 그 기억 println만 (엑스 코드의 디버그 영역에 나타납니다) 디버그 로그에 인쇄됩니다. system.log에 인쇄하려면 예전과 NSLog같이 사용해야 합니다.

그런 다음 메뉴, 디버그> 시스템 로그 열기 … (cmd + /)를 통해 시뮬레이터 로그를 볼 수 있습니다.


답변

광미 /var/log/system.log가 나를 위해 작동하지 않았다. 를 사용하여 로그를 찾았습니다 Console.app. 그들은 있었다

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