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>
.
Swift 를 사용하는 경우 println
xLog의 디버그 영역에 나타나는 디버그 로그에만 인쇄 한다는 점 을 기억하십시오 . system.log에 인쇄하려면 예전과 NSLog
같이 사용해야 합니다.
그런 다음 메뉴, 디버그> 시스템 로그 열기 ... (cmd + /)를 통해 시뮬레이터 로그를 볼 수 있습니다.
광미 /var/log/system.log
가 나를 위해 작동하지 않았다. 를 사용하여 로그를 찾았습니다 Console.app
. 그들은에 있었다
~/Library/Logs/iOS Simulator/{version}/system.log
XCode> 6.0 및 iOS> 8.0 아래 코드는 XCode 버전> 8.0 인 경우 작동합니다
아래의 작은 스크립트를 사용하여 시뮬레이터 로그를 시스템 콘솔에 연결합니다.
#!/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
Grep에 사용 된 시뮬레이터 유형을 인수로 전달할 수 있습니다. 위의 게시물에서 언급했듯이 Xcode 버전에 따라 사용할 수있는 시뮬레이터 유형을 보는 simctl and instrument 명령이 있습니다. 사용 가능한 장치 / 시뮬레이터 목록을 보려면
xcrun instruments -s
또는
xcrun simctl list
이제 장치 코드 또는 시뮬레이터 유형을 스크립트의 인수로 전달하고 grep 내부의 "iPhone 6 (8.2 Simulator)"를 $ 1로 바꿀 수 있습니다
Console
Mac 에서 응용 프로그램을 사용할 수 있습니다 . "장치"에서 장치를 선택하십시오.
iOS 시뮬레이터를 통해 직접 로그를 열 수 있습니다. Debug -> Open System Log...
도입시기가 확실하지 않으므로 이전 버전에서는 사용하지 못할 수 있습니다.
참고 URL : https://stackoverflow.com/questions/10165641/how-can-i-get-the-console-logs-from-the-ios-simulator
'IT story' 카테고리의 다른 글
Numpy 배열을 이미지로 저장 (0) | 2020.04.19 |
---|---|
Swift에서 UI_USER_INTERFACE_IDIOM ()으로 현재 장치 감지 (0) | 2020.04.19 |
가장 일반적인 SQL 안티 패턴은 무엇입니까? (0) | 2020.04.19 |
명령 행을 사용하여 postgres 백업 파일을 복원 하시겠습니까? (0) | 2020.04.18 |
Bash의 간단한 논리 연산자 (0) | 2020.04.18 |