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

Posted

技术标签:

【中文标题】使用上传符号将 dSYM 上传到 Firebase【英文标题】:upload dSYMs to Firebase using upload-symbols 【发布时间】:2020-04-03 14:19:49 【问题描述】:

自从他们取消了简单直接的上传方式以来,尝试将 dSYMS 文件上传到 Firebase,但失败了。

我在终端中输入了这个: /Users/michael****/Desktop/Revibe/revibe-ios/Pods/FirebaseCrashlytics/upload-symbols -gsp /Users/michael****/Desktop/Revibe/revibe-ios/Revibe/Production-GoogleService-Info .plist -p ios /Users/michael****/Desktop/appDsyms

我收到此错误: -bash: /Users/michael*****/Desktop/Revibe/revibe-ios/Pods/FirebaseCrashlytics/upload-symbols: 没有这样的文件或目录

Firebase 说要将我的 Crashlytics 更新到 4.0.0 或更高版本,但是当我更新 cocoapod 时,它只能升级到 1.9.1 版本。同样,它说要将 Fabric 更新到 1.10.0 或更高版本,但我能得到的最高版本是 1.9.1。

如何修复此错误,以便再次阅读崩溃报告?

感谢您的帮助。

【问题讨论】:

我建议参考这个问题的答案***.com/questions/60821249/… 【参考方案1】:

注意:Fabric SDK 现已弃用,并将继续报告 您的应用会在 2020 年 11 月 15 日之前崩溃。在这一天,Fabric SDK 和旧版本的 Firebase Crashlytics SDK 将停止发送 您的应用程序崩溃。要继续在 Firebase 控制台,请确保升级到 Firebase Crashlytics SDK 版本 4.0.0+ 适用于 iOS,6.15.0+ 适用于 Unity。

总结

    复制您的 pod FirebaseCrashlytics 路径(1.path) 复制您的 GoogleService-Info.plist 路径(2.path) 在您的 xcode 项目中找到 dsYMs 文件夹(您可以在下面找到详细信息) 复制dsYMs文件路径(3.path)

/upload-symbols -gsp /GoogleService- Info.plist -p ios /dSYMs

/Users/Mobile/IOS/FireApp/Pods/FirebaseCrashlytics/upload-symbols -gsp /Users/Mobile/IOS/FireApp/ Firebase/Production/GoogleService-Info.plist -p ios /Users/Desktop/dSYMs

    在终端中运行


逐步描述

在使用 FirebaseCrashlytics 而不是 Fabric Crashlytics 后,我们遇到了来自 firebaseConsole 的问题“上传缺少所需的 dSYM”。

要解决这个问题,你应该使用控制台/终端提示符。

请在下面找到完成命令的路径。

    找到上传符号命令行工具路径。 firebaseSDK 文件中的这个命令行工具。如果您使用 Pods,请转到 pods 目录。 找到 GoogleService-Info.plist 路径。(安装 firebase SDK 时,此文件添加到您的项目根目录之前)。在您的 xode 项目中查找搜索 find dSYM_directory -name "*.dSYM"(Xcode-> Window -> Orginizer -> Archive ->(右键点击适当的存档文件 -> Show in Finder -> Show Packege Content)

(1.path)/upload-symbols -gsp (2.path)/GoogleService-Info.plist -p ios (3.path)/dSYMs

看下面

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

命令已准备就绪。请在您的终端上运行。

【讨论】:

查看上传结果:好像忘记了存档文件夹两边的单引号。 你是对的。我们应该在空之前添加“\”。 是否应该在每次创建新存档(构建)时都这样做? @DanielZanchi 如果您的dysm文件没有发送到firebase,是的,您每次都应该这样做。【参考方案2】:

应该是这样的:

/Pods/Fabric/upload-symbols -gsp

不是

/Pods/FirebaseCrashlytics/upload-symbols -gsp

注意:

如果您已升级到 Firebase Crashlytics SDK(版本 4.0.0 或更高版本),请在安装 SDK 的“FirebaseCrashlytics”文件夹中找到该工具。对于 CocoaPods,这将位于“Pods/FirebaseCrashlytics”中。

否则,为确保您拥有我们的新上传工具,请将您的 Fabric SDK 升级到 1.10.0 或更高版本。在 Xcode 项目目录的“Pods/Fabric”文件夹中找到该工具,如果通过 zip 下载安装,则在 Fabric.framework 中找到该工具。

【讨论】:

看来已经做到了。我可以发誓我从文档中复制了它。谢谢! 嘿@michaeldebo,我正在尝试使用 Crashlytics 路线。奇怪的是我得到了错误,“-bash: upload-symbols: command not found”——我在正确的目录中,我可以看到二进制文件。知道为什么这不令人兴奋吗? 我收到错误:“错误:缺少必需的标志 a/api-key”,但如果我插入 GoogleService_info.plist 中存在的 api 密钥返回:“错误:API 密钥 () 可能仅包含 [a-f] 和 [0-9] 中的字符,且长度必须为 40 个字符。” @Jonah 如果您从 FirebaseCrashlytics 目录运行它。然后将upload-symbol改为./upload-symbol即可成功运行 我正在使用没有豆荚,这里的任何人都可以帮助我【参考方案3】:
    复制您的 pod FirebaseCrashlytics 路径 复制您的 GoogleService-Info.plist 路径 转到管理器选择当前构建选择在查找器中显示,右键单击显示包内容并复制 dsYMs 文件夹并将其粘贴到您的桌面。 压缩 dsYMs 文件夹并复制文件路径。 在终端中运行

例子

/upload-symbols -gsp -p ios

【讨论】:

以上是关于使用上传符号将 dSYM 上传到 Firebase的主要内容,如果未能解决你的问题,请参考以下文章

Firebase 错误:symbolFileMappings:upsert:上传的文件不是有效的 Breakpad 符号文件

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

Firebase Crashlytics 为 UUID 上传丢失的 dSYMs 文件

Firebase crashlytics 自动上传 dsym

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

必须上传一个 dSYM 文件始终显示在 Firebase Crashlytics 中