ios - Firebase Crashlytics : missing OPTIONAL dSYMs

标签 ios firebase unity3d crashlytics dsym

我们已经从 fabric.io 转移到 Firebase,除了一件事之外,一切似乎都很好。
我们正在使用 统一 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

结果,我在终端中看到以下几行:
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 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 是 可选 ?
  • 这些缺失的 dsyms uuid 来自哪里?
  • 如果这些 uuid_3、uuid_4 是我的应用程序支持的架构的 uuids 而不是 arm64 和 armv7,那么为什么它们不存在于 *.xcarchive 的 dSYMs.zip 中?

  • (dwarfdump 仅在 *.xcarchive dSYM 中显示 armv7 和 arm64 架构)
  • 我在哪里可以找到我的应用程序所需的所有 dsyms?
  • 最佳答案

    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 匹配。

    关于ios - Firebase Crashlytics : missing OPTIONAL dSYMs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61640184/

    相关文章:

    firebase - Firestore 规则 - 验证数据是否存在于其他集合中

    unity3d - 使用testflight部署的某些版本崩溃

    c# - 是否可以保持统一激活脚本?

    ios - 使用 GPUImage 对视频进行色度过滤?

    ios - 处理 Swift 扩展中的类初始化失败

    ios - 如何获取我的 iOS 应用程序的根目录?

    javascript - 元素在老一代 iPad 上无法正常显示?

    ios - 使用 swift 从应用程序 ios 的缓存中读取图像

    android - 无法在 Android 上使用 Cloud Firestore 保存文档

    c# - 如何在纯 C# 中制作队列消息代理