iOS(2021)中的 Firebase crashlytics 脚本无法通过 Testflight 运行

Posted

技术标签:

【中文标题】iOS(2021)中的 Firebase crashlytics 脚本无法通过 Testflight 运行【英文标题】:Firebase crashlytics script in iOS(2021) not working via Testflight 【发布时间】:2021-06-06 00:28:42 【问题描述】:

我正在尝试将 firebase crashlytics 集成到 ios 应用程序中。 在集成期间,我添加了运行脚本以自动上传崩溃。

我将 iPhone_XR 连接到 Xcode 并以发布模式运行。然后我强制崩溃了。我重复了几次。经过几个小时的等待,我能够看到崩溃。确认这按预期工作,我通过 xcode 归档并发布了这个构建(DEV)到 testflight。

通过 testflight 安装后,我做了同样的强制崩溃,但这次它不起作用......大多数人建议手动上传,但我担心我不能这样做,因为我无权访问客户端应用程序(PROD) 并且手动维护崩溃报告对我来说是一个繁琐的过程

请帮我看看 Firebase crashlytics 到底发生了什么。我检查了许多博客和 github 问题以进行理解。他们中的大多数都说要手动上传 dSYM 文件。

注意:GoogleServices 文件位于某个文件夹中,因此我在脚本中给出了该文件的路径。我也尝试直接添加,没有任何子文件夹,但问题仍然存在。

4-MAR 崩溃来自我在测试期间崩溃的手机。

我应该在 3 月 5 日收到一些崩溃,这些崩溃是通过 Testflight 崩溃的,但它说缺少 dSYM 文件

请帮助解决这个问题。过去 2 个月我无法找到合适的解决方案

【问题讨论】:

对于 TestFlight,您需要从 Apple 下载 dSYM 并手动上传:firebase.google.com/docs/crashlytics/… 以下是运行“上传符号”工具的说明:firebase.google.com/docs/crashlytics/… 我想自动完成,我在问题中解释了原因。 仅当您使用 Xcode 生成的 dSYM 时,自动上传 dSYM 的脚本“FirebaseCrashlytics/run”才有效。但是,在使用 TestFlight 或启用 BitCode 并在 App Store 中发布应用程序时,您必须从 App Store Connect 下载它们。 dSYM 不是崩溃,这些文件将用于对实际的崩溃报告进行去混淆处理。每次构建都需要一次,而不是每次崩溃。 这篇文章解释了如何使用 Fastlane 以编程方式执行这些步骤,虽然有点旧,所以我不确定一切是否都以相同的方式工作,但这是基本思想:krausefx.com/blog/… 【参考方案1】:

试试这个脚本:

$PODS_ROOT/FirebaseCrashlytics/run
$PODS_ROOT/FirebaseCrashlytics/upload-symbols -gsp $PROJECT/GoogleService-Info.plist -p ios "$DWARF_DSYM_FOLDER_PATH/$DWARF_DSYM_FILE_NAME"

此外,Firebase 最近更新了他们的 SDK。

【讨论】:

以上是关于iOS(2021)中的 Firebase crashlytics 脚本无法通过 Testflight 运行的主要内容,如果未能解决你的问题,请参考以下文章

iOS中的Firebase“管理员用户”?

IOS Podfile中的firebase消息包错误

iOS Swift 中的 firebase 实时数据库推送等价物是啥?

iOS 14 之后 Firebase 中的 Apple Search Ads 广告系列归因

如何向包含 iOS 和 Android 设备的 Firebase 中的主题发送消息

Firebase iOS Swift - 将 Atname 更新功能添加到设置