例如,fatal error: unexpectedly found nil while unwrapping an Optional value.无论原因如何,都可以捕获这些数据吗?是这stderr还是其他什么?
编辑:我在http://swiftdoc.org/func/fatalError/上找到了一个引用,该函数说明了函数(我假设它确实是Swift内部调用的函数)"无条件地打印消息并停止执行." 所以也许没什么可做的,只能通过TestFlight崩溃报告获得远程崩溃报告,或实际上让设备得心应手.
我能够通过记录所有未捕获的异常NSSetUncaughtExceptionHandler的main.swift,我们有良好的记录在哪里,可能会发生不好的(但有可能)的错误我们的应用程序的其他部分继续.我希望还记录这些致命错误,以便我们的日志显示远程测试设备上发生崩溃的更完整图片.
某些错误将转到stderr. 这是一个简单的例子:
$ cat tryit
#! /usr/bin/env swift
println ("foo")
precondition (false, "bar")
$ ./tryit 2> /tmp/error 1> /tmp/noterror
Illegal instruction: 4
$ cat /tmp/noterror
$ cat /tmp/error
precondition failed: bar: file ./tryit, line 4
0 swift 0x000000010f7faa18 llvm::sys::PrintStackTrace(__sFILE*) + 40
1 swift 0x000000010f7faef4 SignalHandler(int) + 452
...
Run Code Online (Sandbox Code Playgroud)
如果删除precondition,则结果将转到stdout:
$ cat tryit
#! /usr/bin/env swift
println ("foo")
$ ./tryit 2> /tmp/error 1> /tmp/noterror
$ cat /tmp/noterror
foo
$ cat /tmp/error
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
892 次 |
| 最近记录: |