我无法在 PROD 的 Firebase/Crashlytics 中表示崩溃

Posted

技术标签:

【中文标题】我无法在 PROD 的 Firebase/Crashlytics 中表示崩溃【英文标题】:I can't symbolicate crash in Firebase/Crashlytics in PROD 【发布时间】:2019-01-16 17:51:34 【问题描述】:

使用 Xcode 10.1 (10B61)。 我有一个具有不同目标(PROD、TEST、DEV)的应用程序。即使我们有多个目标,我们也有一个共同的 Info.plist 并且所有构建设置都是相同的

我使用 TestFlight 分发应用程序进行测试。

对于 TEST 环境(在 TestFlight 中),一切正常,Crashlytics 能够直接获取符号,但对于生产环境(AppStore 构建),它报告 缺失的 dSym(具有特定 UUID)

鉴于我没有使用位码(由于特定的蓝牙库),我无法从 iTunesConnect 下载 dSym 文件,因此我必须深入研究 .xcarchive 来获取它。

$ mdfind "com_apple_xcode_dsym_uuids == <UUID>" // shows the right path
$ dwarfdump -u "path.../dSyms/<name>.app.dSym   // shows the right UUID

我压缩了文件,但 Crashlytics 说它已正确上传,但似乎无法正常工作...(下班后).. *.app.dSYM 是一个文件夹,因此使用将其重命名为的技巧.zip 不起作用(与从 ITC 下载的一些文件一样)

知道会发生什么吗?

Rgds.... e

【问题讨论】:

【参考方案1】:

回答我自己的问题。在与 Firebase 支持团队核实后,解决方案是通过命令行上传 dSym 文件(由于某种原因,网络上传没有按预期工作)。

1 - 使用 UUID 查找 dSym 文件

$ mdfind "com_apple_xcode_dsym_uuids == 029BC62A-AB08-3C50-97D8-E8DFD5E490AA"

2 - 验证检查文件的 UUID

$ dwarfdump -u "path.../dSyms/<name>.app.dSym

3 - 在终端上传符号

$ Pods/Fabric/upload-symbols -gsp "AppName/Resources/Crashlytics plist Files/Prod/GoogleService-Info.plist" -p ios "/Users/userName/Library/Developer/Xcode/Archives/../*.xcarchive/dSYMs/fileName.app.dSYM"

【讨论】:

以上是关于我无法在 PROD 的 Firebase/Crashlytics 中表示崩溃的主要内容,如果未能解决你的问题,请参考以下文章

错误:无法在 --prod 中确定类 OverlayPortal 的模块

在 ng build --prod 期间无法解析验证指令中的所有参数

无法让 Celery 使用 prod 设置处理数字海洋液滴

Ionic 2 : -- prod 文件未编译错误:构建 prod 失败:无法确定类 HomePage 的模块

Angular 8 ng build --prod 在 TypeError 中发出错误:无法读取未定义的属性“标志”

无法在项目“Runner.xcodeproj”中找到名为“Runner”的目标确实找到了“dev”和“prod”