我想看看如果我不在Xcode中测试应用程序,在iOS模拟器中会发生什么。

例如,如果我在Safari模拟器中打开一个链接,看看控制台会发生什么, 或者如果我安装了一个网络应用程序,可以看到我在控制台按下的链接。

我该怎么做呢?

我想看到它在Xcode或终端,但这不是一个问题,如果我需要使用另一个软件。


当前回答

你不应该依赖仪器。官方支持的从命令行使用模拟器的工具是xcrun simctl。

设备的日志目录可以通过xcrun simctl getenv引导的SIMULATOR_LOG_ROOT找到。即使位置改变,这也总是正确的。

现在事情转移到os_log,更容易打开控制台。启动后的模拟器和物理设备一样,在左侧显示为日志源。你也可以在启动模拟器中运行日志命令:

# 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 Developer工具(包括JS控制台):启动其中一个模拟器,打开Safari,然后转到mac上的Safari,你应该会在菜单中看到模拟器。

您可以通过将URL从Safari地址栏拖拽到模拟器窗口中来打开模拟器中的URL。你也可以使用xcrun simctl openurl bootted <url>。

其他回答

您可以通过使用Safari技术预览应用程序看到模拟器控制台窗口,包括Safari Web检查器和所有Web开发工具。 在模拟器上的Safari中打开页面,然后转到Safari技术预览>开发>模拟器。

在Xcode中: 视图->调试区->激活控制台

您可以通过桌面Safari查看iOS模拟器的控制台。它类似于使用桌面Safari查看物理iOS设备的控制台。

当模拟器正在运行并且有一个网页打开时,在桌面safari的开发菜单下会有一个选项,让你看到iOS模拟器控制台:

开发-> iPhone模拟器->站点名称

模拟器中有一个打开控制台的选项

Debug > Open System Log

或使用 键盘快捷方式:⌘/

[苹果日志]

您可以在Mac上使用控制台应用程序(在设备中选择您的设备)查看使用NSLog, os_log, Logger发送的日志消息(您将不会看到打印功能的日志)。

也请检查(Action ->包含<Info/Debug>消息)

请注意,如果你想从WebView(UIWebView或WKWebView)查看日志,你应该使用Safary -> Develop ->设备

[查找崩溃日志]