断言和未捕获的异常是否会生成崩溃报告?

时间:2011-10-19 20:38:04

标签: iphone ios error-handling assert error-reporting

失败的assert语句是否会生成崩溃报告(带有堆栈跟踪),这些报告将通过iTunes Connect传播?

我想知道NSAssert以及未捕获的C ++ / Obj-C例外情况。

请注意,我正在使用断言来解决内部一致性和逻辑错误,而不是文件错误等问题。

如果他们没有生成错误报告,有没有办法制作它们(使用自定义宏,异常处理程序等)?能够获得堆栈跟踪非常重要。

2 个答案:

答案 0 :(得分:1)

如果您使用标准Xcode模板之一,默认情况下,Xcode将禁用发布版本的NSAssert()个宏。或者,您可以通过在构建设置中向其他C ++标志添加NS_BLOCK_ASSERTIONS标志来自行禁用它们。

答案 1 :(得分:0)

是的,未捕获的异常会生成崩溃报告 - 我现在正在看iTunes Connect崩溃记者中的一个!基本上,几乎任何导致应用程序崩溃并保存日志的内容都会将报告发送回Apple。

那说,如果你担心它,你可能想要实现自己的崩溃报告处理程序,因为a)只有选择与Apple共享诊断信息的用户才会发送崩溃报告到iTunes Connct,和b)无法保证即使在那时崩溃报告也会将其发回给您进行审核。

你可以自己使用未捕获的异常处理程序,通过现有的分析包(Flurry支持这个),或者使用质量可变的开源库(here's one I've found online - 我实现自己的代码报告,所以你的里程可能会有所不同!)