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

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

我该怎么做呢?

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


当前回答

跟踪/var/log/system.log对我不起作用。我用Console.app找到了我的日志。他们在 ~ /图书馆/日志/ iOS模拟器/ {version} / 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”。

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

Debug > Open System Log

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

跟踪/var/log/system.log对我不起作用。我用Console.app找到了我的日志。他们在 ~ /图书馆/日志/ iOS模拟器/ {version} / system.log

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…不确定这是什么时候引入的,所以它可能不适用于早期版本。