我想看看如果我不在Xcode中测试应用程序,在iOS模拟器中会发生什么。
例如,如果我在Safari模拟器中打开一个链接,看看控制台会发生什么, 或者如果我安装了一个网络应用程序,可以看到我在控制台按下的链接。
我该怎么做呢?
我想看到它在Xcode或终端,但这不是一个问题,如果我需要使用另一个软件。
我想看看如果我不在Xcode中测试应用程序,在iOS模拟器中会发生什么。
例如,如果我在Safari模拟器中打开一个链接,看看控制台会发生什么, 或者如果我安装了一个网络应用程序,可以看到我在控制台按下的链接。
我该怎么做呢?
我想看到它在Xcode或终端,但这不是一个问题,如果我需要使用另一个软件。
当前回答
您可以通过桌面Safari查看iOS模拟器的控制台。它类似于使用桌面Safari查看物理iOS设备的控制台。
当模拟器正在运行并且有一个网页打开时,在桌面safari的开发菜单下会有一个选项,让你看到iOS模拟器控制台:
开发-> iPhone模拟器->站点名称
其他回答
查看控制台日志最简单的方法是添加consolelogs作为参数:
Ionic cordova运行ios -l—控制台日志
您将能够在终端上看到控制台日志。
跟踪/var/log/system.log对我不起作用。我用Console.app找到了我的日志。他们在 ~ /图书馆/日志/ iOS模拟器/ {version} / system.log
您可以通过桌面Safari查看iOS模拟器的控制台。它类似于使用桌面Safari查看物理iOS设备的控制台。
当模拟器正在运行并且有一个网页打开时,在桌面safari的开发菜单下会有一个选项,让你看到iOS模拟器控制台:
开发-> iPhone模拟器->站点名称
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和instruments命令来查看可用的模拟器类型。 查看可用设备/模拟器列表。
xcrun instruments -s
OR
xcrun simctl list
现在,您可以将设备代码或模拟器类型作为参数传递给脚本,并将grep中的“iPhone 6(8.2模拟器)”替换为$1
没有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”。