Vas*_*Che 3 unity-game-engine ios firebase dsym crashlytics
我们已经从 fabric.io 转移到 Firebase,除了一件事之外,一切似乎都很好。我们使用的是Unity 2019.2.6,目标平台是iOS,目标架构是“通用”。
对于 dSYMs 上传,我将 dSYMs 文件夹从 *.xcarchive 打包到 dSYMs.zip 并通过以下代码将其上传到 Firebase
./upload-symbols -gsp <path_to_plist>/GoogleService-Info.plist -p ios <path_to_dSYMs.zip>/dSYMs.zip
Run Code Online (Sandbox Code Playgroud)
结果,我在终端中看到以下几行:
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
Run Code Online (Sandbox Code Playgroud)
之后,我可以在 Crashlytics 仪表板中看到去符号化的崩溃
但也在 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>
<...>
Run Code Online (Sandbox Code Playgroud)
所以问题是:
为什么这些缺少的 dsyms 是Optional?
这些缺失的 dsyms uuid 来自哪里?
如果这些 uuid_3、uuid_4 是我的应用程序支持的架构的 uuid,而不是 arm64 和 armv7,那么为什么它们不存在于 *.xcarchive 的 dSYMs.zip 中?
(dwarfdump 仅在 *.xcarchive dSYM 中显示 armv7 和 arm64 架构)
Firebaser 在这里 -
dSYM 将为您的应用程序中的所有二进制文件和框架生成,这些通常会被标记为“必需的”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 之类的工具。
| 归档时间: |
|
| 查看次数: |
1559 次 |
| 最近记录: |