我想看看如果我不在Xcode中测试应用程序,在iOS模拟器中会发生什么。
例如,如果我在Safari模拟器中打开一个链接,看看控制台会发生什么, 或者如果我安装了一个网络应用程序,可以看到我在控制台按下的链接。
我该怎么做呢?
我想看到它在Xcode或终端,但这不是一个问题,如果我需要使用另一个软件。
我想看看如果我不在Xcode中测试应用程序,在iOS模拟器中会发生什么。
例如,如果我在Safari模拟器中打开一个链接,看看控制台会发生什么, 或者如果我安装了一个网络应用程序,可以看到我在控制台按下的链接。
我该怎么做呢?
我想看到它在Xcode或终端,但这不是一个问题,如果我需要使用另一个软件。
当前回答
下载safari技术评论。在模拟器运行时,选择develop > simulator > localhost
其他回答
您可以通过使用Safari技术预览应用程序看到模拟器控制台窗口,包括Safari Web检查器和所有Web开发工具。 在模拟器上的Safari中打开页面,然后转到Safari技术预览>开发>模拟器。
iOS模拟器>菜单栏>调试>打开系统日志
老方法:
iOS模拟器将其日志直接打印到标准输出,因此您可以看到日志与系统日志混合在一起。
打开终端,输入tail -f /var/log/system.log
然后运行模拟器。
编辑:
这在Mavericks/Xcode 5中停止工作。现在你可以访问模拟器的日志在它自己的文件夹:~/Library/ logs /iOS模拟器/<sim-version>/system.log
您可以使用控制台。app查看,或者只是做一个尾巴(以iOS 7.0.3 64位为例):
tail -f ~/Library/Logs/iOS\ Simulator/7.0.3-64/system.log
编辑2:
它们现在位于~/Library/Logs/CoreSimulator/<simulator-hash>/system.log中
/Library/Logs/CoreSimulator/<simulator-hash>/system.log . tail -f ~/Library/Logs/CoreSimulator/<simulator-hash
iOS 8和iOS 9
在iOS 8和iOS 9下,这个位置现在是:
~/Library/Logs/CoreSimulator/<DEVICE_CODE>
所以,下面的方法是可行的:
tail -f ~/Library/Logs/CoreSimulator/<DEVICE_CODE>/system.log
DEVICE_CODE值可以通过下面的终端命令找到:
instruments -s devices
我可以直接通过iOS模拟器打开日志:Debug -> open System log…不确定这是什么时候引入的,所以它可能不适用于早期版本。
没有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”。