iOS Fabric Crashlytics Answers Kit无法收集数据

4

问题概述

更新:我想我已经成功解决了问题,但我不确定是怎么做的。我只是从我的控制面板中删除了应用程序,重新创建了它们,清除了 Fabrics 和 Crashlytics 缓存,并在尝试了四五次后,它自己开始工作了。我仍然想知道它是如何发生的,以及如何在不完全删除应用程序的情况下解决它。

简而言之,我无法从 Answers kit 接收任何统计信息,而且 Fabric 似乎认为 Answers 没有安装在我的应用程序中,尽管它已经安装了。我对事件跟踪不感兴趣,我只需要指标统计数据

问题说明

Fabric Crashlytics kit 与 Answers 捆绑在一起,对于我的大多数应用程序,每当我设置 Crashlytics 时,Answers 也会被设置,并且我可以在 Fabric 仪表板上看到统计数据。

然而,对于我其中的几个应用程序,我无法看到统计数据,似乎 Answers 被禁用了。仪表板上说,要查看统计数据需要安装 Answers

但是当我查看我的 Fabric Mac 客户端时,它表示对于这个应用程序,Answers kit 已经被安装和启用

因此,让我们回到应用程序的 Web 仪表板上,除 Crashlytics 外所有的统计选项都被禁用,而且该应用程序本身也有点灰暗,不像其他应用程序那样。

详细地说,它首先等待“事件”,并建议我应该重新安装应用程序(我已经这样做了很多次)。

一段时间后,它说没有接收到任何事件,并要求我执行一个新安装并启用调试模式。

我的配置

我的 Pod 文件如下:

pod 'Fabric'
pod 'Crashlytics'

我正在AppDelegate中设置我的Fabric kit,代码如下:

[Fabric with:@[[Crashlytics class]]];

我已启用调试模式,方法如下:

[[Fabric sharedSDK] setDebug: YES];

我现在所做的事情

  1. 确保已安装Answers。
  2. 启用调试模式。 Fabric说它可以告诉我是否已启用Answers并发送事件,但我还没有看到任何相关日志。我收到的唯一三个日志是版本号和设置已下载并可供使用的通知。
  3. 进行新的安装。
  4. 检查调试模式的日志,确认Fabric的设置已下载并准备好供使用。
  5. 添加Fastlane Kit以创建构建交付,以查看我的应用程序与Fabric之间是否存在通信问题。构建正确显示并正确上传,但仍然没有Answers。

我甚至记录了登录事件,尽管我不需要它,只是为了看看它是否开始传输Answers数据。

[Answers logLoginWithMethod:@"Email"
                        success:@YES
               customAttributes:@{}];

当应用程序运行时,还有这个有趣的日志:
[FileManager] Failed to remove file '/var/mobile/Containers/Data/Application/F055EE71-5064-4105-B41D-BD098F28DAA9/Library/Caches/com.crashlytics.data/com.sampleapp.mysampleapp/v3/launchmarker' : Error Domain=NSCocoaErrorDomain Code=4 "“launchmarker” couldn’t be removed." UserInfo={NSUnderlyingError=0x14e6a830 {Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"}, NSFilePath=/var/mobile/Containers/Data/Application/F055EE71-5064-4105-B41D-BD098F28DAA9/Library/Caches/com.crashlytics.data/com.sampleapp.mysampleapp/v3/launchmarker, NSUserStringVariant=(
    Remove
)}

每次我在重置模拟器后尝试进行新安装时,它都会弹出。此外,请检查缓存中的Fabrics数据中的设置JSON。这里有一些有趣的细节:
"features": {
    "collect_logged_exceptions": true,
    "collect_reports": false,
    "collect_analytics": false,
    "prompt_enabled": false,
    "push_enabled": true
  }

完整的JSON可以在这里查看。

我该如何修复这个问题?


1
我长时间面临同样的问题。现在我转向使用 hockeyapp - scorpiozj
很遗憾,我也遇到了同样的问题。Crashlytics会记录错误和崩溃,但Answers无法正常工作。这个弹出窗口一直出现,伴随着应用程序图标可怕的动画,上面写着:“等待事件”。 尝试了互联网上提供的所有解决方案,但都没有用。 此外,通过电子邮件联系支持团队是一种糟糕的客户服务。这几乎就像在说:“是的,我们不想真正帮助你...只需给我们发送电子邮件即可”。 我现在正在尝试HockeyApp,正如@scorpiozj所建议的那样。 我已经浪费了太多时间在这上面,而且它看起来是一个更好的解决方案。 - RawKnee
4个回答

1
在2018年回答这个问题,以防有人遇到类似情况。我需要连接到WiFi才能将事件发送到Fabric。要么它无法通过蜂窝网络发送,要么我的手机连接不好。在WiFi上立即工作。

2
值得一提的是:我在他们的文档上读到了这样的内容:“如果您的应用程序正在运行支持它的操作系统(OS X 10.9+,iOS 7.0+),Crashlytics将使用进程外后台网络操作提交大多数报告。这将显著提高报告的可靠性,并为您的用户带来功率和性能优势。” - itMaxence

0

我认为你的AppDelegate应该长这样:

[Fabric with:@[[Crashlytics class], [Answers class]]];

答案在我所有其他应用程序中工作,而无需显式初始化Answers类<s>但好吧,我要试一试</s>,它不起作用。 - NSNoob
怎么样了?有运气吗? - Pætur Magnussen
2
Fabric 的 Mike 在这里。这种实现方式会导致问题,不建议使用。 - Mike Bonnell
1
嗯...这很奇怪,因为根据Fabric的建议步骤,它告诉我们要按照这种方式设置Fabric。请参见附图(https://i.imgur.com/sZ1Y2DG.png)。 - Stanislau Baranouski
这正是我所想的。@MikeBonnell。 - Pætur Magnussen
显示剩余2条评论

0

Fabric 的 Mike 这里。是的,Answers 已经包含在 Crashlytics 中了,但是在你在 Fabric 控制面板上启用并接受针对 Answers 的条款和条件之前,不会收集任何数据。你需要做的是包含 Crashlytics,在应用程序在控制面板中处于活动状态后,前往控制面板中的任何其他页面,并从 Web UI 启用 Answers。

之后,我们等待两分钟,以查看是否有任何事件数据。通常情况下,运行应用程序的清理、构建和运行操作(或卸载和重新安装)将发送数据,然后使控制面板可见。至于为什么它之前在你的应用程序中无法工作,对我来说仍然不清楚,但可能是竞争条件或者我们的其中一个缓存没有正确地传播数据。

编辑:添加了一个启用 Answers 按钮的图片。

enter image description here


谢谢Mike,当我重新创建应用程序时,它确实问我是否要启用分析功能,我选择了是。对于将来的使用,启用统计数据收集的按钮在哪里?我敢肯定我没有看到过。 - NSNoob
该按钮可用于侧边栏中 Crashlytics 选项卡之外的任何应用程序。有一个选项可以为所有应用程序或您正在查看的单个应用程序启用 Answers。 - Mike Bonnell
3
我已清除项目缓存,卸载了一个应用程序,并从头开始按照文档中的所有步骤完成。我可以百分之百确定按照文档做了一切,但“Answers”仍然无法正常工作。 - Stanislau Baranouski
我需要更多的信息来调试这个问题。请将您的调试日志发送至support(at)fabric(dot)io邮箱。 - Mike Bonnell
@MikeBonnell 你好,我来自Android环境,我已经启用了实时分析功能,并按照文档进行了操作。但它总是显示等待事件,没有其他进展。另一个问题是崩溃邮件发送给所有成员,但只能由单个管理员查看。其他成员没有列出任何问题。现在我该怎么办?请指导我如何禁用它并使其像以前一样正常工作。 - Shree Krishna
非常抱歉,我没有明白您的问题。最好通过support(at)fabric(dot)io联系客服并提供更多细节。 - Mike Bonnell

0

适用于Swift

首先前往Crashlytics手册和Xcode

  1. 我在我的应用程序上安装它。然后您将收到'来自Crashlytics的欢迎电子邮件'

  2. 我尝试按照说明测试崩溃事件。https://fabric.io/kits/ios/crashlytics/features

在Fabric的Web UI上,

  1. 我看到生成的崩溃事件。

回到Xcode

  1. 停止调试,并尝试删除导致应用程序崩溃的代码行,并代之以Answer事件触发器,从https://fabric.io/kits/ios/answers/features(只更改一行代码),然后再次运行,我尝试点击运行事件

转到Fabric Web UI

  1. 点击网页UI的其他页面,例如保留、增长等。

  2. Fabric网页UI显示条款和条件请求您启用。

从现在开始,Fabric UI仍然显示“等待事件”

  1. 您将收到来自Fabric的电子邮件,详细信息为“您刚刚启用了Fabric分析”

  2. 停止从Xcode调试您的应用程序

  3. 从iPhone或模拟器中删除您的应用程序

  4. 再次从Xcode运行您的应用程序

  5. 尝试单击生成事件的按钮。

  6. Fabric UI对话框接收到触发事件。

  7. 就是这样。成功了

这是我在苦苦挣扎了许多小时后的所有步骤。希望这能帮助到您。


在第12步,它对我不起作用。Fabric UI一直在加载。 - diousk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接