我在Xcode 8.2.1中使用Swift 2编写了一个iOS应用程序,它是为iOS 10.2构建的。
我从TestFlight获得了大量崩溃报告,尽管有符号表示,但崩溃日志除了堆栈跟踪之外都没有显示任何程序状态(没有参数值,没有本地,没有堆对象等)。
...但在这些函数中我可以看到可能失败的代码(例如强制解包),但崩溃日志并没有告诉我它失败的地点或原因。
在Xcode中调试时,我可以使用fatalError(message: String)
我可以放置自己的消息,如"functionFoo returned nil"
或"variable bar == \"" + bar + "\""
,除非使用TestFlight或App Store部署{{1}将被命中并且程序终止,但fatalError
值未保存到崩溃日志中,使其毫无意义。
在其他环境中,例如C#/ .NET和Java,我只需message
,所有信息都可以在我拥有的任何全局throw new SomeExceptionType("my message")
处理程序中使用。
如何在iOS / Swift中实现相同的目标?