Crashlytics 未提供适当的崩溃报告

Posted

技术标签:

【中文标题】Crashlytics 未提供适当的崩溃报告【英文标题】:Crashlytics not giving proper crash reports 【发布时间】:2017-12-22 21:59:45 【问题描述】:

我在最近的几个构建中注意到它,crashlytics 没有发送正确的崩溃报告...... 在崩溃报告中,我无法调试发生崩溃的类..

虽然我也尝试过手动上传 DSYM 并使用 Fabric,但我确实遵循了他们网站上的所有说明..

我也尝试通过从 itunesconnect 下载来上传 DSYM,但并非没有提供正确的崩溃日志

崩溃报告示例

Fatal Exception: NSRangeException

0  CoreFoundation                 0x18cbcefe0 __exceptionPreprocess

1  libobjc.A.dylib                0x18b630538 objc_exception_throw

2  CoreFoundation                 0x18caad200 -[__NSArrayM removeObjectAtIndex:]

3  MyApp                           0x1001a3550 _hidden#4208_ (__hidden#4311_:498)

4  MyApp                           0x10012c008 _hidden#1377_ (__hidden#1463_:318)

5  MyApp                           0x10012f888 _hidden#1403_ (__hidden#1463_:753)

6  MyApp                           0x100132448 _hidden#1497_ (__hidden#1511_:352)

7  MyApp                           0x1001dc1b8 _hidden#5257_ (__hidden#5321_:209)

8  Foundation                     0x18d6c24cc __NSThreadPerformPerform

9  CoreFoundation                 0x18cb7d42c __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__

10 CoreFoundation                 0x18cb7cd9c __CFRunLoopDoSources0

11 CoreFoundation                 0x18cb7a9a8 __CFRunLoopRun

12 CoreFoundation                 0x18caaada4 CFRunLoopRunSpecific

13 GraphicsServices               0x18e514074 GSEventRunModal

14 UIKit                          0x192d65058 UIApplicationMain

15 MyApp                           0x10018b9cc main (__hidden#3728_:14)

16 libdyld.dylib                  0x18bab959c start

为什么是_hidden#4208??

【问题讨论】:

您是否尝试删除 crashlytics 仪表板顶部的热门构建? 我们应该如何删除它? 你可以在 Fabric.io 上找到它>选择应用>屏幕顶部的crashlytics 我已经试过了 来自 Fabric 的 Mike。您是否在使用 Bitcode 并与 Apple 共享您的符号文件?最重要的是,如果您使用的是 Bitcode,那么您也要共享您的符号,否则 dSYM 不包含有用的信息。 【参考方案1】:

最终找到确切的解决方案集启用 bitCode 作为构建设置中的否

【讨论】:

【参考方案2】:

我的问题是,我正在使用命令行工具创建构建,但当时没有使用任何位码标志。所以它向我提供了不正确的崩溃报告。

现在我在我的 IPA 中包含位码符号,然后在将其上传到 appstoreconnect.apple.com 后,如果我为我的 IPA 下载 dsym 并将其上传到 crashlytisc 的缺失 dsym 部分,我会得到所有正确的崩溃报告。

Note:我从上传到 appstoreconnect 的构建中下载了 DSYM,因为 DSYM 包含符号,只有这样才能解决我的问题。

【讨论】:

我正在使用Xcode 创建ArchiveIPA,我总是在Build Settings 中设置Enable Bitcode Yes 并从我创建的手动上传丢失的压缩DSYM 文件ArchiveFabric 缺少 DSYM 部分,但无法正常工作,我总是在崩溃报告行中收到 _hidden。你指的是别的东西吗?【参考方案3】:

试试这个

    转到构建设置 然后转到 构建选项 在构建选项中转到 调试信息格式 并将 DebugDWARF 更改为 DWARF with DSYM File

现在再次按照 Fabric crashlytics 步骤进行操作,您一定会得到正确的崩溃报告。

参考下面的截图

【讨论】:

【参考方案4】:

请在Xcode Bitcode, Include Symbols settings effect on dSYM generation查看这个 Matt 的回答

我没有尝试过,但我认为按照马特的回答中提到的指南,您可以解决您的问题。

【讨论】:

以上是关于Crashlytics 未提供适当的崩溃报告的主要内容,如果未能解决你的问题,请参考以下文章

Firebase Crashlytics 未报告崩溃

Firebase Crashlytics 集成未检测或报告崩溃

崩溃报告未进入 Crashlytics / fabric。显示警告:“看起来我们缺少 dSYM 来处理以下版本的崩溃。”

使用 Crashlytics 框架处理崩溃报告提供了不正确的 crashDate

iOS-应用程序退出时在 Crashlytics 上未收到崩溃

Crashlytics 不发送崩溃报告 [iOS]