【发布时间】:2019-08-26 08:42:24
【问题描述】:
iOS 应用 (XCode 10.3) 遇到以下问题:
- Crashlytics 说我缺少 dSYM,并提供了缺少的 dSYM UUID(我同时缺少必需和可选 UUID)
- 应用是BitCode应用,dSYM从AppStore下载,上传到Crashlytics。我看到其他 dSYM 的许多其他崩溃已正确下载和去符号化。
- 该应用程序是多目标应用程序。以前,当应用程序只是单一目标应用程序时,一切正常。额外的目标似乎是个问题。
- 所有目标都选择了 dSYM 的 BitCode 和 DWARF
- 所有调用 Crashlytics 的目标都在构建阶段运行(至少我相信我这样做是正确的)
- 目标是手表应用、手表应用扩展、Siri 意图、Siri 意图 UI 和 iOS 应用小部件。
- 我已经手动打开了从 AppStore 下载的 dSYM,并且丢失的 dSYM UUID 确实丢失了。
- 我还检查了本地构建的应用存档,dSYM UUID 不存在(是的,预期结果)
任何想法,从哪里获得丢失的 dSYM,都会让人更开心...拜托。
【问题讨论】:
-
这里有同样的问题。这可能与 Crashlytics 无关。您可以通过从崩溃报告中获取构建 UUID 来获得更低的级别,通常二进制图像部分的第一行是应用程序,然后是框架,尖括号中的位是图像的 UUID。如果有一个匹配的 dsym,它象征着,我无法象征的崩溃错误,dsym 丢失。
-
这肯定与 Crashlytics 无关。根本原因似乎是 AppStore,因为我从 AppStore 下载的 dSYM 文件比上传的少。我还没有解决这个问题,我已经找到了错误并修复了崩溃。对我有所帮助的是 XCode -> Window -> Organizer -> 崩溃。到目前为止没有显示所有内容,但显示了修复错误的缺失信息。
-
刚刚做了更多的挖掘工作。凭直觉,我刚刚尝试了 dwarfdump --lookup=
,其中 offset 是堆栈跟踪中的 + 号,对相同的二进制文件和体系结构使用不匹配的 dsym 文件。这给了我与来自同一构建的不同崩溃报告相同的位置。我现在没有更多时间花在上面,但我最好的猜测是,它是一个与 beta 安装或类似版本没有变化的框架,因此它具有不同的 UUID,但代码相同。
标签: ios crashlytics dsym