Firebase Crashlytics:缺少可选的dSYM文件

5
我们已将fabric.io迁移到Firebase,一切似乎都正常了,除了一个问题。我们正在使用Unity 2019.2.6,目标平台是iOS,目标架构是“Universal”。为了上传dSYMs,我从*.xcarchive中打包dSYMs文件夹到dSYMs.zip,然后通过以下代码将其上传到Firebase。
./upload-symbols -gsp <path_to_plist>/GoogleService-Info.plist -p ios <path_to_dSYMs.zip>/dSYMs.zip

因此,我在终端中看到以下行:

Successfully submitted symbols for architecture arm64 with UUID <uuid_1> in dSYM: <path_to_unzipped_dsyms>/dSYMs/<myapp>.app.dSYM
Successfully submitted symbols for architecture armv7 with UUID <uuid_2> in dSYM: <path_to_unzipped_dsyms>/dSYMs/<myapp>.app.dSYM
Successfully uploaded Crashlytics symbols

之后,我可以在Crashlytics仪表板中看到反混淆的崩溃信息。

但是,在Crashlytics的dSYM选项卡中,我看到了以下内容:

Missing dSYMs 

UID <uuid_3> Version <my_version> Status **Optional** Crash count <count_1>
UID <uuid_4> Version <my_version> Status **Optional** Crash count <count_2>
<...>

所以问题是:

  1. 为什么这些缺失的dsyms是可选的

  2. 这些缺失的dsyms UUID是从哪里来的?

  3. 如果这些UUID_3、UUID_4是我应用程序支持的架构的UUID,而不是arm64和armv7,那么为什么它们不存在于*.xcarchive的dSYMs.zip中?

(dwarfdump在*.xcarchive dSYMs中只显示armv7和arm64架构)

  1. 我在哪里可以找到我的应用程序所需的所有dsyms?
2个回答

10

我是一名 Firebaser,

所有的二进制文件和框架都会为您的应用程序生成 dSYMs,这些通常被标记为“必需”的 dSYMs。您在应用程序中链接的框架也会生成 dSYMs,这些通常被标记为“可选”。因此,必备和可选的 dSYMs 来自不同的库,但最终都来自于您的应用程序和任何您链接的框架。

如果您不上传可选的 dSYMs,则可能会看到的行为(大多数情况下)是一些崩溃没有一些堆栈帧被符号化;在这种情况下,您的应用程序通过了链接在应用程序中的一个或两个框架的方法,您通常会看到它被其他库的符号化堆栈帧所包围。但是,大多数情况下,可选的 dSYMs 的重要性并不那么高,无需上传到 Crashlytics。

Crashlytics 将停止崩溃报告传输到您的仪表板,直到与该崩溃报告相关联的任何“必需”缺失的 dSYMs 被上传。上传后,崩溃将被处理并出现在您的仪表板上。如果只有可选的 dSYMs 缺失,则这些崩溃将不会被停止出现在您的仪表板上。

最后,关于定位和上传你的dSYM,我建议从这里开始:https://firebase.google.com/docs/crashlytics/get-deobfuscated-reports?platform=ios。你可以使用像 dwarfdump -u </path/to/dSYMs> 这样的工具来检查你下载的dSYM是否与仪表板中缺失的dSYM的UUID匹配。


你好 @Kevin,SPM和可选的dSYM现在怎么样了?在使用Carthage构建时,我曾经看到一些依赖项有自己的dSYM,但现在我找不到它,Crashlytics正在要求可选的dSYM。 - Tomas

0

DSyms是与IPAs(即实际构建文件)一起创建的iOS工件。它们不是运行应用程序所必需的,但可以用于Crashlytics(包括Fabric和Firebase),以提供有关崩溃的其他信息。


1
感谢您的回答。没错,我的应用程序运行良好,而且我能够看到一些反混淆崩溃。但是我不明白缺少可选dsyms是什么意思,为什么它们是“可选的”,以及这些dsyms在哪里可以找到。 - Vasily Che

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接