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

Firebase Upload missing required dSYMs Not Working

目前,我在通过新的上传脚本上传 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

如果有人有解决办法请告诉我...

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

"Important: If you're working with an app that you previously linked from Fabric to Firebase Crashlytics, pass in your Fabric API Key to run the upload symbols script. That is, in the following options to run the script, use -a fabric-api-key instead of -gsp path/to/GoogleService-Info.plist."

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

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

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

更新

今天又上传了dSYMs,上传的很快。 Firebase Crashlytics 上传过程可能存在一些问题!

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

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

受影响最大的开发者:

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

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

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

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

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

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

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

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

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

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

调试符号文件 (dSYM) Firebase Crashlytics 需要文件才能在其控制台上向应用程序开发人员提供 human-readable 崩溃报告。这些 dSYM 文件由 firebase 自动上传和处理。但在某些情况下,由于Xcode项目中的设置,这是不可能的,上传失败。

转到 XCode 并检查:

  1. 我们必须在 XCode 导航中打开并 select 项目文件。
  2. Select 我们的主要项目构建目标。
  3. Select Build Settings 选项卡,然后是 select ALL 选项。
  4. 然后将Debug Information Format设置为DWARF with dSYM File
  5. 最后,重建应用程序。

上传您的 dSYM

作为 back-up,Crashlytics 包含一个 upload-symbols 脚本,您可以在构建过程中的任何位置调用该脚本以手动上传您的 dSYM。该脚本提供了有关上传过程的更多信息和更强大的错误消息(对于使用说明和附加说明,运行 upload-symbols 不带任何参数)。

要运行 upload-symbols 脚本,请使用以下选项之一:

  1. 在您的构建过程中包括以下行:

     find dSYM_directory -name "*.dSYM" | xargs -I \{\} $PODS_ROOT/FirebaseCrashlytics/upload-symbols -gsp /path/to/GoogleService-Info.plist -p platform \{\}
    
  2. 运行 直接从您的终端脚本:

      /path/to/pods/directory/FirebaseCrashlytics/upload-symbols -gsp /path/to/GoogleService-Info.plist -p ios /path/to/dSYMs
    

通过 POD 'Firebase/Crashlytics' 安装 crashlytics。 从应用商店下载 DSYMS。 位于这里 --> myapps --> select 你的应用程序 --> testflight --> select 最新版本 --> 构建元数据 --> 下载 dSYM。

现在 运行 这个脚本直接使用终端

你的项目 POD 文件夹路径 /FirebaseCrashlytics/upload-symbols -gsp /YOUR PROJECT/GoogleService-Info.plist -p ios /Users/username/Downloads/appDsyms

更详细的步骤。

打开终端,按以下顺序将 3 个文件拖放到终端上:

A-->拖放:“upload-symbols”可以在/project/Pods/FirebaseCrashlytics/upload-symbols

中找到

B--> 写入“-gsp”

C-->拖放:“GoogleService-Info.plist”可以在/project/GoogleService-Info.plist

中找到

D--> 写入 " -p ios "

E--> 拖放:“appDsyms”文件夹(未存档,zip 文件可能无法运行!)通常位于下载文件夹 /Users/username/Downloads/appDsyms

F--> 按回车键

在终端中,完整的命令应该包括 -gsp 和 -p ios,完整的命令如下所示:A -gsp C -p ios E

/project/Pods/FirebaseCrashlytics/upload-symbols -gsp /project/GoogleService-Info.plist -p ios /Users/username/Downloads/appDsyms

在 google firebase 24 小时内反映可能需要一些时间。