iOS(iPhone,iPad,iPodTouch)查看实时控制台日志终端


Answers:


155

Apple在技术问答QA1747 调试针对Xcode 6的已部署iOS应用程序中记录的解决方案是:

  1. 从Xcode菜单中选择Window-> Devices。
  2. 在左栏中选择设备。
  3. 单击右侧面板左下角的上三角以显示设备控制台。

屏幕截图带有上三角


4
我认为,这是最简单的解决方案。
巴特·范·库克

在Xcode 6.4中,我看到一个按钮,上面写着“查看设备日志”,但显示崩溃日志。我没有获取控制台日志的方法。
克里斯·普林斯

4
我添加了带有向上三角形图标的屏幕截图。
玛丽安·塞尔尼

1
print语句不进入日志,仅进入stdout。使用NSLog代替。或者也可以stdout使用一些添加的代码重定向到文件。会记录崩溃,并可以使用“查看设备日志”按钮进行访问。
玛丽安·塞尔尼

3
此按钮已在xCode 9.3中取消。现在,它具有一个“ Console.app”按钮,这使方法更有意义。
rustyMagnet

79

编辑:请使用@cbowns解决方案-deviceconsole与iOS9兼容并且更易于使用。

这是一个开源程序,可在终端中显示iDevice的系统日志(类似于tail -F的方式)。无需越狱,输出是完全可复制的,因此您可以筛选以仅查看程序的输出。此解决方案特别有用的是,您可以查看日志,无论该应用程序是否从XCode以调试模式启动。

这是如何做:

从我的github帐户(https://github.com/benvium/libimobiledevice-macosx/zipball/master)中获取Mac OS X的libimobiledevice二进制文件

请按照此处的安装说明进行操作:https : //github.com/benvium/libimobiledevice-macosx/blob/master/README.md

连接设备,打开Terminal.app并输入:

idevicesyslog

向上弹出实时显示设备的系统日志。

通过将其作为控制台应用程序,您可以使用unix命令(例如grep)过滤日志

例如,查看来自特定应用程序的所有日志消息:

idevicesyslog | grep myappname

取自我的博客,网址http://pervasivecode.blogspot.co.uk/2012/06/view-log-output-of-any-app-on-iphone-or.html


4
看来这不适用于iOS模拟器。笨蛋 No device found, is it plugged in?
ashes999 2013年

它无法在iOS10上运行。“ usbmuxd_send:发送时出现错误-1:管道损坏”该如何解决?
Victor Choy 2016年

2
当我在没有sudo的情况下运行idevicesys时,出现关于“无法启动服务com.apple.syslog_relay”的神秘错误。也许取决于安装方式或其他方式。
比约恩·罗氏

如果它不适合您,请执行此操作……brew uninstall libimobiledevice ideviceinstaller && brew install --HEAD libimobiledevice ideviceinstaller
Akshet

77

两种选择:

libimobiledevice可通过自制程序安装,并且效果很好。其idevicesyslog工具的工作方式类似于deviceconsole(如下),并且支持无线查看设备的系统日志(!)。

在Tumblr tl; dr 写了更多有关它的内容

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

通过USB连接的设备或在本地无线网络上可用的设备。

从2013年开始:rpetrich的deviceconsole比上面的ideviceconsole少了很多麻烦的解决方案。我的前叉可以在Xcode 5 中立即构建和运行,并且Build操作将安装二进制文件以便/usr/local/bin于使用。

作为其他有用的信息,我以以下样式使用它,可以轻松在外壳历史记录中找到所需的设备,并删除打印出来的不必要>deviceconsole

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

感谢这篇文章。这正是我想要的。我等不及将iOS添加到我的GUI移动LogCat工具中:github.com/yepher/LogCat
Yepher 2014年

2
这太棒了-花费了2分钟来编译和运行。这应该是公认的答案。
Nick Farina 2014年

这是一个很好的解决方案。并且只想补充一点,该集合仍然适用于iOS8(应该如此!)
Kelly

1
@BugaBuga确保您使用的是最新的libimobiledevice。(有线和无线日志查看在Mac上的10.11和iOS 10.2上的iPhone都可以使用)
cbowns

1
github.com/libimobiledevice/libimobiledevice/issues/356。使用:brew install --HEAD libimobiledevice。为我工作。
rustyMagnet

21

只需Console.app在mac osX上打开应用程序。

你可以找到它下Applications> Utilities> Console

在应用程序的左侧,列出了所有已连接的设备。


2
这是一个很好的解决方案。我可以使用搜索功能从根本上“ grep”设备的实时/“现在”日志。
罗布

14

尝试使用免费软件iOS控制台。只需下载,启动并连接您的设备-瞧!


1
这很有趣,但是如果我有多个连接到Mac,它不会让我选择查看控制台日志的设备。
leolobato

如此简单并且可以在iOS 12上很好地工作,我对了解开发人员应该多么简单的日志记录感到沮丧,并最终来到这里。谢谢彼得
FreeAppl3

为什么不Console.app[macOS原生提供]?
rustyMagnet

6

这可能是您要寻找的: Xcode Organizer


是的...但是由于某些原因,Xcode Organizer上的控制台的实时性较差,因为它位于GUI窗口中。我希望有一种方法可以直接在设备上调用shell来尾-f <logfilename>
Arunabh Das 2011年

如果外壳已越狱,则只能在设备上获得外壳。
progrmr 2011年

谢谢progrmr。我想接受您的答案作为正确答案。您还可以张贴有关HowTo的任何链接,以获取越狱设备上的外壳的信息吗?谢谢!!
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

1
@ThomasW:不幸的是,Apple Configurator似乎无法像iPhone Configuration Utility一样查看设备日志。
newenglander

1
是的 只需从菜单安装自动化工具。krypted.com/iphone/...
淑娜Kjærgård

2

您有三种选择:

  • Xcode组织者
  • 带有syslogd + openSSH的越狱设备
  • 使用dup2将所有STDERR和STDOUT重定向到一个文件,然后将该文件“ tail -f”(最后一个更多是模拟器,因为您遇到了在设备上尾随文件的同样问题)。

因此,要获得2º,您只需要从Cydia安装syslogd和OpenSSH,请在启动syslogd之后重新启动。现在只需打开到设备的ssh会话(通过Windows上的终端或腻子),然后键入“ 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设备名称]> [您的网页]

Safari的Inspector将出现,其中显示适用于iOS设备的控制台。


3
我们可以看到safari控制台日志,而不是应用程序的日志。
Gamma-Point

这对仿真器确实有效...尚未在实际设备上尝试过。
sketchthat '17

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.