上传 1 个缺失的 DSYM 以处理 Firebase 崩溃报告中的 18 次崩溃

Posted

技术标签:

【中文标题】上传 1 个缺失的 DSYM 以处理 Firebase 崩溃报告中的 18 次崩溃【英文标题】:Upload 1 missing DSYM required to process 18 crashes in firebase crash report 【发布时间】:2020-04-16 05:33:08 【问题描述】:

我正在尝试在 Xamarin 表单中为 ios APP 实现 Firebase 崩溃报告。我根据 Firebase 文档进行了所有设置。我正在使用 Visual Studio for Windows,我手动崩溃了应用程序,当我尝试查看崩溃报告时在 firebase 控制台中显示错误。

【问题讨论】:

您是否上传了任何 dSYM? 不,我没有上传 dSYM .. 【参考方案1】:

通常,在构建程序时,某些信息会丢失。编译过程是有损的,并且不(完全)可逆。丢失的信息包括

相对于原始源代码的行号 局部变量的名称 代码的确切结构 ...

(请注意,这完全取决于您使用的语言。与原生 C++ 或其他编译成原生二进制文件的语言相比,使用 C# 和 C++/CLI 保留的信息更多。)

在调试应用程序时,此信息保存在.pdb 文件中(我相信在某种程度上也保存在二进制文件本身中),但发布的应用程序通常缺少此信息,因为您不希望它们存在臃肿而缓慢,但圆滑而快速。无论如何,iOS 应用程序都会编译为本机二进制文件 AFAIK,这会使方法的名称不可读。 Xcode 仍然构建了一些调试信息(debugging SYMbols it is,我认为)您可以使用它来更大程度地追溯分析错误,无需任何调试即可信息,如果错误以任何方式记录(例如,使用 AppCenter 和显然是 Firebase)。

似乎有一个Firebase script 可以用来上传.dSYM 文件。从您的图像来看,在我看来,也有一些工具可以从 Web 界面上传文件(.dSYM 文件是一个文件夹,实际上,例如 AppCenter 需要将其压缩)。上传符号后,您应该使用命名方法获得一个不错的堆栈跟踪。 无论如何如果您在构建应用程序后没有存储它们,我认为您不会轻易获得它们。由于此版本似乎仅出于测试目的而上传,因此您似乎很幸运。只需重建它并上传.dSYM,它应该位于您的.ipa 所在的同一文件夹中。

【讨论】:

以上是关于上传 1 个缺失的 DSYM 以处理 Firebase 崩溃报告中的 18 次崩溃的主要内容,如果未能解决你的问题,请参考以下文章

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

使用 Firebase/Crashlytics 更改 Fabric 和 Crashlytics pod 以上传缺少的必需 dSYM

Crashlytics 自动上传 dsym 文件

上传 DSYMS 文件失败。我已经上传了 myapp.app.dSYM 压缩文件,但它再次要求我上传“上传缺少所需的 dSYM”

禁用位码时下载 dSYM

在不上传 dsym 的情况下删除 Fabric 缺少 dsym 警告消息