iOS (iPhone, iPad, iPodTouch) 실시간 콘솔 로그 터미널보기


답변:


155

Apple이 기술 Q & A QA1747 Debugging Deployed iOS Apps for Xcode 6 에서 문서화 한 솔루션 은 다음과 같습니다.

  1. Xcode 메뉴에서 창-> 장치를 선택하십시오.
  2. 왼쪽 열에서 장치를 선택하십시오.
  3. 오른쪽 패널의 왼쪽 하단에있는 위쪽 삼각형을 클릭하여 장치 콘솔을 표시합니다.

위쪽 삼각형이있는 스크린 샷


4
제 생각에는 이것이 가장 쉬운 해결책입니다.
Bart van Kuik

Xcode 6.4에서 "View Device Logs"라는 버튼이 있지만 충돌 로그를 제공합니다. 콘솔 로그를 얻는 방법이 보이지 않습니다.
Chris Prince

4
위쪽 삼각형 아이콘이있는 스크린 샷을 추가했습니다.
Marián Černý

1
print문은 로그로 이동하지 않고 stdout. NSLog대신 사용하십시오 . 또는 stdout코드가 추가 된 파일 로 리디렉션 할 수도 있습니다 . 충돌이 기록되고 "장치 로그보기"버튼을 사용하여 액세스 할 수 있습니다.
Marián Černý

3
이 버튼은 xCode 9.3에서 폐기되었습니다. 이제 "Console.app"버튼이있어 훨씬 더 의미가 있습니다.
rustyMagnet

79

편집 : @cbowns 솔루션을 사용하십시오-deviceconsole은 iOS9와 호환되며 사용하기 훨씬 쉽습니다.

이것은 터미널에 iDevice의 시스템 로그를 표시하는 오픈 소스 프로그램입니다 (tail -F와 유사한 방식). 탈옥이 필요하지 않으며 출력은 완전히 grep 가능하므로 프로그램의 출력 만 볼 수 있도록 필터링 할 수 있습니다. 이 솔루션의 특히 좋은 점은 앱이 XCode에서 디버그 모드로 시작되었는지 여부에 관계없이 로그를 볼 수 있다는 것입니다.

방법은 다음과 같습니다.

https://github.com/benvium/libimobiledevice-macosx/zipball/master의 github 계정에서 Mac OS X 용 libimobiledevice 바이너리를 가져옵니다.

https://github.com/benvium/libimobiledevice-macosx/blob/master/README.md 에서 설치 지침을 따르십시오.

장치를 연결하고 Terminal.app을 열고 다음을 입력하십시오.

idevicesyslog

Up은 장치의 시스템 로그를 실시간으로 표시합니다.

콘솔 앱이므로 grep과 같은 유닉스 명령을 사용하여 로그를 필터링 할 수 있습니다.

예를 들어 특정 앱의 모든 로그 메시지를 확인하세요.

idevicesyslog | grep myappname

http://pervasivecode.blogspot.co.uk/2012/06/view-log-output-of-any-app-on-iphone-or.html의 내 블로그에서 가져 왔습니다 .


4
이것은 iOS 시뮬레이터에서 작동하지 않는 것 같습니다. Bummer. No device found, is it plugged in?
ashes999 2013-04-04

iOS10에서는 작동하지 않습니다. "usbmuxd_send : 보낼 때 오류 -1 : 파이프 손상"해결 방법?
Victor Choy

2
sudo없이 idevicesys를 실행하면 "com.apple.syslog_relay 서비스를 시작할 수 없습니다."라는 암호 오류가 발생합니다. 아마도 당신이 그것을 어떻게 설치 하느냐에 달려 있습니다.
Bjorn Roche

당신을 위해 작동하지 않는 경우 ...이 작업을 수행brew uninstall libimobiledevice ideviceinstaller && brew install --HEAD libimobiledevice ideviceinstaller
Akshet

77

두 가지 옵션 :

libimobiledevicehomebrew 를 통해 설치할 수 있으며 훌륭하게 작동합니다. 이 idevicesyslog도구는 deviceconsole(아래) 와 유사하게 작동 하며 장치의 syslog (!)를 무선으로 볼 수 있습니다.

나는 Tumblr tl; dr 그것에 대해 더 많이 썼습니다 .

brew install libimobiledevice
idevice_id --list // list available device UDIDs
idevicesyslog -u <device udid>

USB를 통해 연결된 장치 또는 로컬 무선 네트워크에서 사용할 수 있습니다.

2013 년부터 : rpetrich의 deviceconsole 은 위의 ideviceconsole보다 훨씬 덜 복잡한 솔루션입니다. 내 포크는 Xcode 5에서 즉시 빌드되고 실행되며 빌드 작업은 /usr/local/bin사용하기 쉽도록 바이너리를 설치합니다 .

추가로 유용한 정보로, 쉘 히스토리에서 원하는 장치를 쉽게 찾고 인쇄되는 불필요한 >줄을 제거하는 다음 스타일로 사용합니다 deviceconsole.

deviceconsole -d -u <device UDID> | uniq -u && echo "<device name>"

이 게시물에 감사드립니다. 내가 찾던 바로 그것입니다. GUI 모바일 LogCat 도구에 iOS를 추가하기를 기다릴 수 없습니다. github.com/yepher/LogCat
Yepher

2
이것은 굉장합니다-컴파일하고 실행하는 데 2 ​​분이 걸렸습니다. 이것은 받아 들여진 대답이어야합니다.
Nick Farina 2014

이것은 멋진 솔루션입니다. 그리고 단지 컬렉션이 여전히 iOS8의 작동 것을 추가하고 싶었 (예상대로!)
켈리

1
@BugaBuga 최신 libimobiledevice. (유선 및 무선 로그보기는 10.11 내 맥 작업 및 iOS 10.2에 내 아이폰 있습니다)
cbowns

1
github.com/libimobiledevice/libimobiledevice/issues/356 . 사용 : brew install --HEAD libimobiledevice. 나를 위해 일했습니다.
rustyMagnet

21

Console.appMac osX 에서 응용 프로그램 을여십시오.

당신은 아래에서 찾을 수 있습니다 Applications> Utilities> Console.

응용 프로그램의 왼쪽에는 연결된 모든 장치가 나열됩니다.


2
이것은 훌륭한 솔루션입니다. 검색 기능을 사용하여 기본적으로 장치의 라이브 / "지금"로그를 "grep"할 수 있습니다.
Rob

14

프리웨어 iOS 콘솔을 사용해보십시오 . 장치를 다운로드, 실행, 연결하기 만하면됩니다.


1
흥미롭지 만 Mac에 여러 대가 연결되어있는 경우 콘솔 로그를 볼 장치를 선택할 수 없습니다.
leolobato 2015 년

너무 간단하고 iOS 12에서 훌륭하게 작동하기 때문에 개발자에게 로깅이 얼마나 간단한 지 아는 것이 좌절되어 여기서 끝납니다. 감사합니다 Peter
FreeAppl3

왜 안 Console.app[기본적으로 맥 OS에있는 선박]?
rustyMagnet

6

이것은 당신이 찾고있는 것일 수 있습니다 : Xcode Organizer


예 ... 그러나 어떤 이유로 Xcode Organizer의 콘솔은 GUI 창 안에 있기 때문에 덜 실시간입니다. 나는 장치에서 쉘을 직접 tail -f <logfilename>에 호출하는 방법을 바라고 있었다
Arunabh Das 2011 년

탈옥 된 경우에만 장치에서 셸을 얻을 수 있습니다.
progrmr 2011 년

감사합니다 progrmr. 귀하의 답변을 정답으로 받아들이고 싶습니다. 탈옥 된 장치에서 셸을 얻는 방법에 대한 링크를 게시 해 주시겠습니까? 감사!!
Arunabh Das 2011 년

@ArunabhDas Ben Clayton의 idevicesyslog 답변에 대한 수락 된 답변을 변경하는 것을 고려하십시오. 그의 솔루션은 CoronaSDK 플랫폼을 사용하는 iOS 앱으로 인앱 구매를 디버깅하기 위해 찾던 바로 그 솔루션이었습니다. Xcode Organizer는 로그 정보를보기에 느리고 번거로 웠습니다.
Anthony F

5

장치> 터미널 출력이 iPhone 구성 앱에 있습니다.

여기 : http://support.apple.com/kb/DL1465


1
해당 링크는 더 이상 유효하지 않습니다. 업데이트 된 앱 이름이 Apple Configurator이고 여기에서 사용할 수 있다고 생각합니다. itunes.apple.com/us/app/apple-configurator/id434433123?mt=12 그러나 OS X 10.10+입니다.
ThomasW 2015 년

1
@ThomasW : 안타깝게도 Apple Configurator에는 iPhone 구성 유틸리티가 수행하는 것처럼 장치 로그를 볼 수있는 기능이없는 것 같습니다.
newenglander

1
그렇습니다. 메뉴에서 자동화 도구를 설치하기 만하면됩니다. krypted.com/iphone/…
Sune Kjærgård

2

세 가지 옵션이 있습니다.

  • Xcode 오거나이저
  • syslogd + openSSH를 사용하는 탈옥 된 장치
  • dup2를 사용하여 모든 STDERR 및 STDOUT을 파일로 리디렉션 한 다음 해당 파일을 "tail -f"합니다 (마지막 파일은 장치에서 파일을 추적하는 것과 같은 문제가 발생하기 때문에 시뮬레이터에 가깝습니다).

따라서 2º를 얻으려면 Cydia에서 syslogd와 OpenSSH를 설치하고 syslogd를 시작하려면 다시 시작해야합니다. 이제 장치에 대한 ssh 세션을 열고 (터미널 또는 Windows의 putty를 통해) "tail -f / var / log / syslog"를 입력하십시오. 무선 실시간 시스템 로그입니다.

3º를 시도하고 싶다면 온라인에서 "dup2"를 검색하면 시스템 호출입니다.


0

Mac의 Safari에서 iOS 기기의 콘솔을 보려면 (Mac 만 해당) :

  1. iOS 기기에서 설정> Safari> 고급으로 이동하여 Web Inspector를 켭니다.
  2. iOS 기기에서 Safari에서 웹 페이지를로드합니다.
  3. 기기를 Mac에 직접 연결
  4. Mac에서 Safari의 개발자 메뉴를 아직 활성화하지 않은 경우 환경 설정> 고급으로 이동하여 "메뉴 막대에 개발 메뉴 표시"를 선택합니다.
  5. Mac에서 개발> [iOS 기기 이름]> [웹 페이지]로 이동합니다.

iOS 기기 용 콘솔을 보여주는 Safari의 Inspector가 나타납니다.


3
앱의 로그가 아닌 사파리 콘솔 로그를 볼 수 있습니다.
Gamma-Point

이것은 에뮬레이터에서 작동합니다 ... 실제 장치에서 시도하지 않았습니다.
sketchthat

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.