Firebase Crashlytics iOS:即使脚本似乎正在运行,也无法接收事件

Posted

技术标签:

【中文标题】Firebase Crashlytics iOS:即使脚本似乎正在运行,也无法接收事件【英文标题】:Firebase Crashlytics iOS: Cannot receive events even though the script seems running 【发布时间】:2019-10-29 04:09:55 【问题描述】:

我知道这可能是一个看似常见的问题,但我无法接收来自 Firebase Crashlytics 的事件。 当然,我四处寻找以前提出的问题,但没有一个是我的情况。 如果有人除了我在下面所做的事情之外还有其他想法,请告诉我。

我做了什么:

检查构建脚本 ($PODS_ROOT/Fabric/run) 正在运行。它在日志上留下了这种消息,看起来没有任何问题。此外,当我伪造路径或文件名只是为了仔细检查构建时因找不到脚本错误而停止。
Running upload-symbols in Build Phase mode
Validating build environment for Crashlytics...
Validation succeeded. Exiting because upload-symbols was run in validation mode

从仪表板新下载的GoogleService-Info.plist。这看起来也很有效,因为删除或重命名此文件会给我一个构建错误(=文件本身被识别),并且在 plist 中伪造捆绑 ID 会在运行时给我一个警告(=文件内容已读取)。我相信这也消除了事件被意外发送到其他地方的可能性。

测试时从调试器中分离。我想这是大多数人都经历过的。我通过执行 kill -> relaunch -> crash -> relaunch 多次确保了这一点。

从启动过程中排除崩溃测试代码。这也是一个常见的陷阱,我当然在按钮事件处理程序中编写了崩溃代码。

【问题讨论】:

有一件事我忘了提。我还确保设备 (iPhone6) 已连接到互联网。 【参考方案1】:

注意:为了更好地调试,您应该在Arguments Passed On Launch 中使用-FIRDebugEnabled 标志。这对我有用:

1) 更改你的运行脚本:

"$PODS_ROOT/Fabric/run" -d

在您的构建输出中,您现在应该会看到 API 密钥:

Running upload-symbols in Build Phase mode
Validating build environment for Crashlytics...
Arguments:
Debug mode enabled
API Key: <api-key>
Platform: ios
DSYM Paths: ["..."]

2) 在您的 AppDelegate 中手动初始化 Crashlytics:

Crashlytics.start(withAPIKey: "<api-key>", delegate: self)

启动应用程序,您应该会看到 crashlytics 输出:

Crashlytics] Version 3.14.0 (144)
[Crashlytics] Running on iOS Simulator (iPhone), 13.1.0 (19A602)
[Fabric] settings downloaded successfully
[Fabric] Settings are available for consumption

3) 执行崩溃(调试器已分离)。在此之后,您应该会看到以下输出:

[Crashlytics:Crash] report submission successful

【讨论】:

感谢您的信息!它报告[Fabric] failed to download settings Error,但最后也显示report submission successful。你知道什么是“设置”吗? 初始化 Crashlytics 时,需要使用构建日志中显示的密钥。不要使用 Google API 密钥,因为这与 Fabric API 密钥不同。当您看到[Fabric] settings downloaded successfully 行时,您就知道它已正确设置 构建日志中是否显示密钥?你能提供更多细节吗? 您必须使用运行脚本执行时构建日志中显示的密钥。使用-d 标志,您应该会看到如下输出:API Key: &lt;api-key&gt; 即使有-d 标志我也看不到。

以上是关于Firebase Crashlytics iOS:即使脚本似乎正在运行,也无法接收事件的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 中添加了 Google Crashlytics - 未连接到 Firebase Crashlytics Dashboard

在 iOS NEDNSProxyProvider 网络扩展上安装 Firebase / Crashlytics

Firebase crashlytics 未在 iOS 中初始化

在 Xamarin iOS 中使用 Firebase Crashlytics

Firebase pod 是在 iOS 上使用 Crashlytics 的必要条件吗?

iOS 上的 Firebase Crashlytics 设置?