Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mac OS Swift:将崩溃日志写入文本文件_Swift_Macos_Debugging_Error Handling - Fatal编程技术网

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

Mac OS Swift:将崩溃日志写入文本文件,swift,macos,debugging,error-handling,Swift,Macos,Debugging,Error Handling,我有一个简单的Mac OS菜单栏应用程序(右上角)。它执行几个基本的服务器调用并组织数据。由于太长时间无法解释的原因,我无法直接在计算机上构建/测试应用程序,因此我一直在做的是在我的开发机器上编译和存档,然后将应用程序转移到服务器计算机上运行 出于调试目的,我有一个函数可以将打印语句与时间戳一起保存到文本文件中 let fileName = "errorLogs" let DocumentDirURL = try! FileManager.default.url(for: .docume

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

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

    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模拟器环境中测试应用程序一样


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

我最终选择了@MwcsMac的解决方案。我将Xcode安装到网络之外的机器上,然后将其带回网络,在那里我可以运行应用程序并测试我需要的方式。我不能更新Xcode,但是我真的不需要


上面我的错误日志解决方案向我提示了一些问题,然后通过Xcode打开并运行应用程序给了我一些细节。谢谢大家

建议使用XCGLogger,您可以将日志直接写入特定路径。我会在您用来测试应用程序的机器上运行Xcode。或者使用类似的方法安装crash Crashlytics或其他类型的Crashlytics插件。MwcsMac:我会这样做,但是机器处于超安全环境中,不允许运行Xcode。不过我会看看XCGLogger的东西,看起来它可能会奏效。谢谢