Firebase Crashlytics:上传缺少的dSYM以查看1个版本的崩溃.(iOS)

jaz*_*bpn 23 ios deobfuscation firebase crashlytics

错误消息: 上传缺少的dSYM以查看1个版本的崩溃.受影响的版本:1.0(1)

我正在尝试在我的iOS项目中实现Firebase Crashlytics.我根据Firebase Crashlytics Doucmentation进行了所有设置.单击按钮时手动执行崩溃,以查看崩解是否正常.

@IBAction func onTestCrashButtonClick(_ sender: UIButton) {

    Crashlytics.sharedInstance().crash()

}
Run Code Online (Sandbox Code Playgroud)

但是当我试图在firebase控制台中看到错误报告时,它会显示类似这样的图像.

在此输入图像描述

阅读Get Deobfuscated崩溃报告之后,我只需将调试信息格式设置为DWARF,dSYM文件如下所示,但问题直到现在才得到修复. 在此输入图像描述

Doc*_*oca 139

将 DSYMS 文件上传到 Firebase Crashlytics 的唯一且简单的方法。(四月 - 2021 )

  1. 从 App Store 下载 appDsyms 档案

    1.1 登录:https : //appstoreconnect.apple.com

    1.2 转到:MyApps -> 选择您的应用程序 -> 试飞 -> 选择 App Store 中的应用程序版本 -> 构建元数据 -> 包含符号(右侧) -> 按:下载 dSYM

  2. 打开终端,按以下顺序在终端上拖放 3 个文件:

    2.1 拖拽:"upload-symbols" 可在 /project/Pods/FirebaseCrashlytics/upload-symbols

    2.2 写“ -gsp

    2.3 拖拽:“GoogleService-Info.plist”可以在 /project/GoogleService-Info.plist

    2.4 写“ -p ios

    2.5 拖放:“appDsyms”文件夹(未归档,zip 文件可能不起作用!)通常在下载文件夹中 /Users/username/Downloads/appDsyms

    2.6 按 Enter

在终端中,完整的命令应该包括-gspand -p ios,完整的命令如下所示:2.1 -gsp 2.3 -p ios 2.5

/project/Pods/FirebaseCrashlytics/upload-symbols -gsp /project/GoogleService-Info.plist -p ios /Users/username/Downloads/appDsyms
Run Code Online (Sandbox Code Playgroud)

All Set,在终端等待上传!

终端示例: 在此处输入图片说明

——

如何通过拖放到终端获取文件或文件夹位置的一种方法:

在此处输入图片说明

——

AppStore Connect,下载 dSYM:

在此处输入图片说明

  • 我这样做并在控制台中收到“已成功上传 Crashlytics 符号”消息。但是红色错误仍然出现在我的 firebase 控制台中 (21认同)
  • 拯救我的日子,兄弟。谢谢你! (8认同)
  • App Store Connect 中没有活动。我这样下载 dSYM:我的应用程序 -> 构建 -> 构建元数据 -> 包含符号(是)| 下载 dSYM。 (3认同)
  • 谢谢,这是我发现上传此文件的最佳方式。我觉得以前的版本很棒,但这个新版本太糟糕了 (2认同)

Dee*_*pak 53

Fabric Crashlytics更新为Firebase Crashlytics SDK 后。我也遇到了同样的问题(上传 1 个缺少 dSYM 需要处理 5 次崩溃)。我在以下步骤的帮助下解决了-:

步骤1-: 打开Target-> Build Settings -> 搜索“调试信息格式”。使用 dSYM 文件将所有构建类型的调试信息格式设置为DWARF

在此处输入图片说明 步骤 2-: 打开运行脚本部分并输入脚本

“${PODS_ROOT}/FirebaseCrashlytics/运行”

然后添加输入文件-

${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}
$(SRCROOT)/$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

步骤 3-:再添加一个脚本来上传 dSYM 文件

${PODS_ROOT}/FirebaseCrashlytics/upload-symbols -gsp ${PROJECT_DIR}/Your_path/GoogleService-Info.plist -p ios ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

  • @DEVIGNR `${BUILD_DIR%Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/upload-symbols -gsp ${PROJECT_DIR}/Your_path/GoogleService-Info.plist -p ios ${DWARF_DSYM_FOLDER_PATH}/$ {DWARF_DSYM_FILE_NAME}` (3认同)
  • 如果我们使用 Swift Package Manager 而不是 CocoaPods,有人知道我们应该在步骤 3 中使用哪个 Crashlytics 路径吗? (2认同)
  • @Dipak 这个不再工作了。还有其他解决办法吗? (2认同)
  • @ΩlostA 是的,你是对的。Google 对 Firebase Crashlytics 非常失望。除了集成流程之外,没有任何自动上传 dsym 的正确记录。 (2认同)

Joe*_*son 48

我一直有同样的问题,我终于能够解决它了,以为我会分享对我有用的东西:

对于上下文,我正在开发一个使用多个Cocoapods的更大的应用程序.

我在Firebase Crashlytics页面上找到了相同的红色横幅,并且按照他们的所有说明后我仍然看到它.

我试过几次"存档/找到.dSYMs /通过终端手动上传"解决方案无济于事.

最后,我决定从iTunesConnect下载.dSYM.
[您的应用]>活动> [所需内部版本号]>下载dSYM

然后我手动上传了那些.dSYMs,几分钟之内,Firebase Crashlytics很高兴并展示了崩溃报告.

更新
Google在Firebase Crashlytics信息中心上添加了一个时髦的.dSYM上传功能,无需再从终端上传.

  • 为什么 Google 决定删除其 Firebase UI 中的上传功能...-_- 这非常方便! (57认同)
  • 从 iTunesConnect 下载 .dSYM 真的很有帮助。谢谢 (7认同)
  • 我们如何使用上传器脚本来实现这一点?谁能举个例子。 (3认同)
  • 为什么 firebase 删除了在控制台本身上上传 Dym 文件?运行脚本对我没有帮助 (3认同)
  • 什么是上传脚本?如何使用它? (2认同)

Nik*_*ani 22

如果一切正常,您就可以在不遗漏任何步骤的情况下进行所有设置,然后您还会看到上传丢失的 dSYM 以查看 firebase 中的崩溃错误。

(2020 年 6 月 1 日至 2020 年)

在此处输入图片说明

仅从iTunesConnect下载.dSYM,不要在其他任何地方下载并将它们上传到Firebase

在此处输入图片说明

Google 即将移除 Firebase 仪表板上的上传功能

直接从终端运行脚本以上传dSYM

/path/to/pods/directory/FirebaseCrashlytics/upload-symbols -gsp /path/to/GoogleService-Info.plist -p ios /path/to/dSYMs
Run Code Online (Sandbox Code Playgroud)

经过两天的长期研究并尝试了很多解决方案,但没有人为我工作:(

但是通过这个解决方案,Firebase Crashlytics 很高兴并在几分钟内显示了崩溃报告。

  • 即使上传后问题仍然相同......脚本没有抛出任何错误 (4认同)

raN*_*aNa 8

Pods/Fabric/upload-symbols -gsp APP/Resources/GoogleService_Info.plist -p ios /Users/ME/Desktop/APP.app.dSYM
Run Code Online (Sandbox Code Playgroud)

这是我最近用来将我的 dsym 上传到结构的。我使用的是带有 crashlytics SDK 的结构,而不是 firebase one(目前处于测试阶段)。只需将您的应用名称替换为“APP”和您的 DSYM 路径,而不是“/Users/ME/Desktop/APP.app.dSYM”。


Sha*_*hed 7

我也面临同样的问题。基本上我错过了一个简单的步骤,这就是 Firebase 脚本无法上传 dSYM 文件的原因。

接下来的步骤就解决了。

  • 单击项目文件
  • 选择目标
  • 转到构建设置
  • 搜索“调试信息格式”
  • 对于所有方案,将设置更改为“DWARF with dYSM file”

xCode设置屏幕

  • 现在再次运行该项目
  • firebase 仪表板的 dYSM 错误应该消失...


小智 7

  • 使用包firebase_crashlytics: ^3.3.1.
  • 在运行脚本中仅添加这一行${PODS_ROOT}/FirebaseCrashlytics/run
  • 在输入文件中仅添加此行$(SRCROOT)/$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)
  • 运行项目,错误应该消失了。

笔记。该解决方案仅适用于颤振。 在此输入图像描述

  • 杰出的!工作起来就像一个魅力。除了我的“运行脚本”中已经有一些行,所以我只是将您建议的行添加到末尾。 (2认同)

小智 6

就我而言,我做了以下事情并且它奏效了:

  1. 在 Build Phases -> Run Script (Shell = ${PODS_ROOT}/Fabric/run) 中选择“仅在安装时运行脚本”

  2. 构建应用程序

  3. 现在你可以在路径中找到 .dsym 文件,/Library/Developer/Xcode/DerivedData/XXX-arctjcalvfslmbakanpyivuuxjmm/Build/Products/Release-iphoneos

  4. 将压缩的 .dsym 文件上传到 firebase 控制台

  5. 几分钟后,您可以找到崩溃报告

笔记:

  • 我在导出 ipa 文件(Adhoc 或 Appstore)时禁用了位码
  • 如果您需要启用位码的 ipa,请从 iTunes 连接下载 dsym 文件


nil*_*arp 5

查找并上传 Crashlytics 的调试符号

  • 复制丢失的 dSYM 的 UUID 并mdfind "com_apple_xcode_dsym_uuids == <UUID>"在终端窗口上运行 。
  • 上面的命令将返回类似 .../build/ios/Release-Staging-iphoneos/your.app.dSYM
  • 使用 Firebase 仪表板压缩包并上传到 Crashlytics

等待 10-15 分钟,然后崩溃开始出现在控制台上。


小智 5

2021 年 3 月

活动选项卡不再位于 itunesconnect 上,因此要获取 Dsyms 文件,您必须

  1. 转到 itunes 连接。
  2. 我的应用程序。
  3. 选择特定的应用程序。
  4. 导航至试飞。
  5. 选择要为其生成 Dsyms 文件的构建。
  6. 单击构建元数据。
  7. 搜索“包含符号”,然后单击“下载”。

下载后,在终端中运行此代码,用正确的文件路径替换引用的部分。

/path/to/pods/directory/FirebaseCrashlytics/upload-symbols
 -gsp /path/to/GoogleService-Info.plist -p ios /path/to/dSYMs
Run Code Online (Sandbox Code Playgroud)