Firebase 上传缺少所需的 dSYM 不工作

Posted

技术标签:

【中文标题】Firebase 上传缺少所需的 dSYM 不工作【英文标题】:Firebase Upload missing required dSYMs Not Working 【发布时间】:2020-07-28 05:23:56 【问题描述】:

目前,我在通过新的上传器脚本上传 dSYM 时遇到问题。

/path/to/Fabric/upload-symbols -gsp /path/to/GoogleService-Info.plist -p <platform> /path/to/dSYMs

我通过上传 dSYM 得到了成功响应

但 firebase 控制台没有变化。

我已经检查了以下线程:

https://github.com/firebase/firebase-ios-sdk/issues/5327

如果有人有解决方案请告诉我...

【问题讨论】:

请使用google-fabric标签,因为fabric与你的问题无关,它是关于python库的。看一下标签的描述 @Ashish kakkad 你在构建阶段通过运行脚本上传了 dsym 吗?你在 firebase 控制台中遇到崩溃了吗? 【参考方案1】:

我遇到了同样的问题。我发现了什么:

    您应该仔细检查是否可以在您的 XCode 存档中找到这个特定的 DSYM。为此,请打开 XCode->Organizer->Show In Finder-> DSYMs in bundle:尝试从 dSYMS 错误 Firebase 面板中按 ID 查找特定的 DSYM。如果您能找到具有相同 ID 的任何人,则必须手动上传。 根据我的实践,延迟通常为几分钟,最长为 24 小时。 有时,我在 XCode 存档或 AppStore 下载中找不到 Firebase 上列出的 DSYM ID。我发现,Firebase 捕获了该应用程序的所有分布式版本。这就是为什么如果 AppStore 还没有出现在 TestFlight 上,你就无法在 AppStore 上找到它们的原因。您可能可以在您的 Alpha 存档中找到它们。

不过,这是我的猜测。 我想知道 Firebase 中的任何人是否可以提供更多信息。

【讨论】:

【参考方案2】:

不知道 Firebase Crashlytics 中发生了什么。

但在 1 天/24 小时后处理 dSYM,现在它们在同一版本中显示(可选)。

更新

我今天又上传了 dSYM,上传速度很快。可能有一些问题是存在 Firebase Crashlytics 上传过程!

https://github.com/firebase/firebase-ios-sdk/pull/5228

【讨论】:

【参考方案3】:

目前,处理 dSYM 需要(大约)24 小时(特别是,如果 dSYM 大小很大),但应该很快就会改善。

受影响最大的开发者:

仅结构旧版,未迁移的客户 - 应该看不到影响 Fabric 旧版 SDK,已迁移到 Firebase - 受影响 Fabric 旧版 SDK,通过 Firebase 载入 - 受影响 Firebase SDK(目前处于测试阶段)- 没有影响

怀疑从Apple下载的dsym的bundle id不正确。 Apple 正在设置 com.apple.xcode.dsym。 (例如 com.apple.xcode.dsym.Bingo Blast)。

1- 作为一种临时解决方法,如果开发人员在从 Apple 下载 dsym 后,将所有出现的不正确的 bundle 字符串转换为正确的 bundle id(例如 com.redhotlabs.bingo),这应该允许提取 dsym正确。

查看一个示例 shell 脚本,开发人员可以使用该脚本将 and 替换为适当的值。

导出 BUNDLE_ID='' 导出 DSYM_PATH='' sed -i '' -e "s/>com.apple.xcode.dsym.*\$BUNDLE_ID\

2- 在上传符号完成并上传映射文件后的至少 10 分钟内,尽量不要测试崩溃应用或向用户发布可能崩溃的应用。

3- 我建议升级到 Firebase SDK(目前处于测试阶段)以避免这个问题。

【讨论】:

我从 Apple 下载了 dSYM。 您是否有任何打开的案例/勾选 AT Fabirc 或 Firebase 支持? 不......正如我在回答中发布的那样,它花了将近一天的时间来处理...... 目前,处理 dSYM 需要(大约)24 小时(特别是,如果 dSYM 大小很大),但应该很快就会改善。 你确定吗?您有这 24 小时的任何文件吗?【参考方案4】:

如果这是从 Fabric 迁移的应用程序,那么您需要按照这些说明进行操作,

“重要提示:如果您正在使用之前从 Fabric 链接到 Firebase Crashlytics 的应用,请传入您的 Fabric API 密钥以运行上传符号脚本。也就是说,在运行脚本的以下选项中,使用-a fabric-api-key 而不是 -gsp path/to/GoogleService-Info.plist。"

如果这不是一个迁移的应用程序,并且您看到正在上传正确的丢失 UUID,但您仍然收到丢失的 dSYM 错误,那么您需要写入 Firebase Support 以便他们可以获取您的调试日志并检查您的会话 ID。

【讨论】:

谢谢,但是,我已经检查了文件...这不是我要说的问题:) 您的问题可能与github.com/firebase/firebase-ios-sdk/issues/5327有关 我在 Firebase 文档中找不到此消息,是否仍然相关? @drasick firebase.google.com/docs/crashlytics/… @OlegKodysh 我在文档中找不到这个“重要提示:如果您正在使用之前从 Fabric 链接到 Firebase Crashlytics 的应用程序,请传入您的 Fabric API 密钥以运行上传符号脚本. 也就是说,在运行脚本的以下选项中,使用 -a fabric-api-key 而不是 -gsp path/to/GoogleService-Info.plist。"它实际上说要转向使用 FirebaseCrashlytics,并且没有提及您的应用是否已迁移。

以上是关于Firebase 上传缺少所需的 dSYM 不工作的主要内容,如果未能解决你的问题,请参考以下文章

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

Firebase crashlytics 自动上传 dsym

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

上传到 App Store 时 iOS 缺少所需的图标文件

上传到 App Center 后缺少 dSYM

使用上传符号将 dSYM 上传到 Firebase