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
创建Archive
和IPA
,我总是在Build Settings
中设置Enable Bitcode
Yes
并从我创建的手动上传丢失的压缩DSYM
文件Archive
到 Fabric
缺少 DSYM
部分,但无法正常工作,我总是在崩溃报告行中收到 _hidden
。你指的是别的东西吗?【参考方案3】:
试试这个
-
转到构建设置
然后转到 构建选项
在构建选项中转到 调试信息格式
并将 Debug 的 DWARF 更改为 DWARF with DSYM File。
现在再次按照 Fabric crashlytics 步骤进行操作,您一定会得到正确的崩溃报告。
参考下面的截图
【讨论】:
【参考方案4】:请在Xcode Bitcode, Include Symbols settings effect on dSYM generation查看这个 Matt 的回答
我没有尝试过,但我认为按照马特的回答中提到的指南,您可以解决您的问题。
【讨论】:
以上是关于Crashlytics 未提供适当的崩溃报告的主要内容,如果未能解决你的问题,请参考以下文章
Firebase Crashlytics 集成未检测或报告崩溃
崩溃报告未进入 Crashlytics / fabric。显示警告:“看起来我们缺少 dSYM 来处理以下版本的崩溃。”
使用 Crashlytics 框架处理崩溃报告提供了不正确的 crashDate