【问题标题】:Upload 1 missing DSYM required to process 18 crashes in firebase crash report上传 1 个缺失的 DSYM 以处理 Firebase 崩溃报告中的 18 次崩溃
【发布时间】:2020-04-16 05:33:08
【问题描述】:
我正在尝试在 Xamarin 表单中为 IOS APP 实现 Firebase 崩溃报告。我根据 Firebase 文档进行了所有设置。我正在使用 Visual Studio for Windows,我手动崩溃了应用程序,当我尝试查看崩溃报告时在 firebase 控制台中显示错误。
【问题讨论】:
标签:
firebase
xamarin.forms
【解决方案1】:
通常,在构建程序时,某些信息会丢失。编译过程是有损的,并且不(完全)可逆。丢失的信息包括
- 相对于原始源代码的行号
- 局部变量的名称
- 代码的确切结构
- ...
(请注意,这完全取决于您使用的语言。与原生 C++ 或其他编译成原生二进制文件的语言相比,使用 C# 和 C++/CLI 保留的信息更多。)
在调试应用程序时,此信息保存在.pdb 文件中(我相信在某种程度上也保存在二进制文件本身中),但发布的应用程序通常缺少此信息,因为您不希望它们存在臃肿而缓慢,但圆滑而快速。无论如何,iOS 应用程序都会编译为本机二进制文件 AFAIK,这会使方法的名称不可读。 Xcode 仍然构建了一些调试信息(debugging SYMbols it is,我认为)您可以使用它来更大程度地追溯分析错误,无需任何调试即可信息,如果错误以任何方式记录(例如,使用 AppCenter 和显然是 Firebase)。
似乎有一个Firebase script 可以用来上传.dSYM 文件。从您的图像来看,在我看来,也有一些工具可以从 Web 界面上传文件(.dSYM 文件是一个文件夹,实际上,例如 AppCenter 需要将其压缩)。上传符号后,您应该使用命名方法获得一个不错的堆栈跟踪。 无论如何如果您在构建应用程序后没有存储它们,我认为您不会轻易获得它们。由于此版本似乎仅出于测试目的而上传,因此您似乎很幸运。只需重建它并上传.dSYM,它应该位于您的.ipa 所在的同一文件夹中。