我们已经从fabric.io转移到Firebase,除了一件事外,一切似乎都很好。我们使用的是Unified2019.2.6,目标平台是iOS,目标架构是"Universal“。
对于dSYM上传,我将dSYMs文件夹从*.xcarchive打包到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 dSYMs选项卡中,我看到了以下内容:
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>
<...>所以问题是:
为什么这些缺失的dsym是Optional
的dSYMs.zip中?
(侏儒转储只显示armv7和arm64在*.xcarchive dSYM中的体系结构)
发布于 2020-05-22 21:05:38
火炬手在这里-
dSYMs将为应用程序中的所有二进制文件和框架生成,这些二进制文件和框架通常被标记为“必需的”dSYM。在应用程序中链接的框架也会生成dSYM,这些框架通常会被标记为“可选”。因此,所需的和可选的dSYM来自不同的库,但最终它们都来自您的应用程序和您正在链接的任何框架。
如果您不上传可选的dSYM,您可能会看到的行为(大多数情况下)是,您的一些崩溃不会有几个堆栈帧的符号化;在这些情况下,您的应用程序很可能会运行在应用程序中链接的一个或两个框架的方法中,并且经常会看到它被来自其他库的符号化堆栈框架所包围。但是,大多数情况下,可选的dSYM上传到Crashlytics并不那么重要。
Crashlytics将阻止崩溃报告进入您的仪表板,直到任何与该崩溃报告相关的“必需的”缺失dSYM被上传。一旦上传,崩溃将被处理,并出现在您的仪表板上。如果只有可选的dSYM丢失,这些崩溃将阻止而不是出现在您的仪表板上。
最后,在定位和上传dSYM方面,我建议从这里开始:https://firebase.google.com/docs/crashlytics/get-deobfuscated-reports?platform=ios。您可以使用像dwarfdump -u </path/to/dSYMs>这样的工具来检查您下载的dSYM是否与仪表板中缺少的dSYM的UUID匹配。
发布于 2020-05-06 20:49:14
DSyms是与IPAs (也就是实际的构建文件)一起创建的iOS--人工制品。它们不是运行应用程序所必需的,但可以用于Crashlytics ( Fabric和Firebase),以提供有关崩溃的附加信息。
https://stackoverflow.com/questions/61640184
复制相似问题