使用 PLCrashReporter 会禁用 iTunes 连接崩溃报告吗?

Posted

技术标签:

【中文标题】使用 PLCrashReporter 会禁用 iTunes 连接崩溃报告吗?【英文标题】:Will using PLCrashReporter disable iTunes connect crash reporting? 【发布时间】:2012-10-22 12:25:08 【问题描述】:

我在我的应用程序中使用 PLCrashRepoter。在 iTunes Connect 中,我没有看到任何崩溃报告,但我的应用被下载了 50000 多次,因此很可能会发生崩溃/报告。然而 iTunes Connect 没有显示任何报告。

经过非常简单的处理后,我在 App 启动时调用 [crashReporter purgePendingCrashReport];。 所以我想知道 - 我是不是通过删除 elsewise iTunes 将上传到 iTunes 连接的 crashReports ?

我查看了代码,似乎 purgePendingCrashReports 只是从它自己创建的字典中删除。

在 PlCrashReporter 中我还发现:

NSSetUncaughtExceptionHandler(&uncaught_exception_handler);

这可能是覆盖了 iTunes 连接上传机制所依赖的 defaultHandler 吗?

【问题讨论】:

【参考方案1】:

PLCrashReporter 确实禁用 Apple 的崩溃报告功能。您在 iTunes Connect 中看不到崩溃报告的原因是它收集和汇总崩溃报告的方式。

    只有在用户同意将设备的匿名使用数据发送给 Apple 时才会发送崩溃报告。这很笼统,大多数用户只是说不。 由于 ios 5 崩溃报告是在设备与 iTunes 同步(很少这样做)之前以(未知)间隔直接从设备发送的。 只有在每种类型的崩溃都通过了(未知)数量的崩溃报告后,才会出现崩溃报告。 您每天只能为您的应用版本刷新一次崩溃数据。

通常至少需要 2 周时间才能看到 iTunes Connect 中出现的内容,很多时候需要更长的时间,甚至什么都没有出现。

【讨论】:

这就是答案!第 3 点。我不知道。您能否更详细地了解为什么 PLCrashRepoter 不会干扰 Apple 的崩溃报告?你为什么确定呢? 因为我用了将近 4 年,我为它做出了贡献,我在它上面写了一个开源框架,叫做 QuincyKit,我是 HockeyApp.net 的联合创始人,这是一个网络提供崩溃报告基础设施的服务,它的开发人员是我认识的最好的开发人员之一,您可以轻松地对其进行测试:安装它并让您的应用程序在没有连接 Xcode 的情况下崩溃。然后打开管理器并检查设备日志部分。此外,Apple 的崩溃报告是一个外部进程,PLCrashReporter 在您的应用程序中运行。 此外,这里有两篇其他开发者的博客文章对此进行了解释:taptaptap.com/blog/… 和 futuretap.com/blog/… 谢谢,这对我很有帮助。

以上是关于使用 PLCrashReporter 会禁用 iTunes 连接崩溃报告吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何像 Crashlytics 和开源 PLCrashReporter 那样获得崩溃的线路和方法

从 PLCrashReport 获取使用完整数据

Exchange Server2016运维篇一:禁用和删除邮箱深入探讨

云桌面登录常见报错

检测使用jQuery更改的禁用属性[重复]

即使禁用RadGridView GridViewSelectColumn仍然可以选择