我想看看如果我不在Xcode中测试应用程序,在iOS模拟器中会发生什么。
例如,如果我在Safari模拟器中打开一个链接,看看控制台会发生什么, 或者如果我安装了一个网络应用程序,可以看到我在控制台按下的链接。
我该怎么做呢?
我想看到它在Xcode或终端,但这不是一个问题,如果我需要使用另一个软件。
我想看看如果我不在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>。
其他回答
如果你使用Swift,请记住println只会打印到调试日志(出现在xCode的调试区域)。如果你想打印到system.log,你必须像以前一样使用NSLog。
然后您可以通过它的菜单查看模拟器日志,调试>打开系统日志…cmd + /
模拟器中有一个打开控制台的选项
Debug > Open System Log
或使用 键盘快捷方式:⌘/
您可以通过使用Safari技术预览应用程序看到模拟器控制台窗口,包括Safari Web检查器和所有Web开发工具。 在模拟器上的Safari中打开页面,然后转到Safari技术预览>开发>模拟器。
没有NSLog或打印内容将写入System .log,可以通过Select Simulator -> Debug ->在Xcode 11上打开系统日志。
我想出了一个办法,把日志写进一个文件,然后用Terminal.app打开xx.log。然后日志就会显示在Terminal中。应用活泼。
我使用CocoaLumberjack来实现这一点。
步骤1:
增加DDFileLogger DDOSLogger和打印日志路径。config()应该在App午餐时调用。
static func config() {
#if DEBUG
DDLog.add(DDOSLogger.sharedInstance) // Uses os_log
let fileLogger: DDFileLogger = DDFileLogger() // File Logger
fileLogger.rollingFrequency = 60 * 60 * 24 // 24 hours
fileLogger.logFileManager.maximumNumberOfLogFiles = 7
DDLog.add(fileLogger)
DDLogInfo("DEBUG LOG PATH: " + (fileLogger.currentLogFileInfo?.filePath ?? ""))
#endif
}
步骤2:
将print或NSLog替换为DDLogXXX。
步骤3:
$ tail -f {path of log}
此时,消息将显示在终端中。应用活泼。
还有一件事。如果没有消息注销,请确认“环境变量-> OS_ACTIVITY_MODE”为“not disable”。
下载safari技术评论。在模拟器运行时,选择develop > simulator > localhost