Mac OS Swift:将崩溃日志写入文本文件

时间:2017-07-20 16:03:07

标签: swift macos debugging error-handling

我有一个简单的Mac OS菜单栏应用程序(右上角)。它执行几个基本的服务器调用并组织数据。由于原因太长而无法解释,我无法直接在计算机上构建/测试应用程序,所以我一直在做的是在我的开发机器上编译和存档,然后将应用程序转移到服务器计算机上运行。

出于调试目的,我有一个函数可以将我的print语句与时间戳一起保存到文本文件中。

    let fileName = "errorLogs"
let DocumentDirURL = try! FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: true)
let fileURL = DocumentDirURL.appendingPathComponent(fileName).appendingPathExtension("txt")
var readString = ""
do {
    // Read the file contents
    readString = try String(contentsOf: fileURL)
} catch let error as NSError {
    print("Failed reading from URL: \(fileURL), Error: " + error.localizedDescription)
}
let modifiedString = "\(readString)\n\(Date()): \(text)"
do {
// Write to the file
try modifiedString.write(to: fileURL, atomically: true, encoding: String.Encoding.utf8)
} catch let error as NSError {
    print("Failed writing to URL: \(fileURL), Error: " + error.localizedDescription)
}

它适用于运行时问题,但问题是当应用程序崩溃时。如果我在Xcode模拟器环境中测试应用程序,我想得到一个输出。

所以我的问题是这个。是否可以将堆栈跟踪类型调试日志输出到文本文件,以便我可以更好地了解应用程序崩溃的位置?

1 个答案:

答案 0 :(得分:1)

我实际上最终选择了@ MwcsMac的解决方案。我将Xcode安装到网络外部的机器上,然后将其带回网络,我可以运行应用程序并测试我的需求。我无法更新Xcode,但我并不需要。

上面的错误日志解决方案让我想到了问题,然后通过Xcode打开和运行应用程序给了我具体细节。谢谢大家!