iOS Fabric Crashlytics Answers Kit无法收集数据

时间:2017-11-16 09:29:44

标签: ios objective-c crashlytics

问题摘要

更新:我已经解决了这个问题,我不确定如何。我刚从仪表板中删除了应用程序,重新创建了它们,清理了Fabrics和Crashlytics Cache,经过四五次尝试后,它开始自行运行。我仍然有兴趣知道它是如何发生的,如何在不完全删除应用程序的情况下实际解决。

TL; DR我没有从Answers工具包中收到任何统计数据,看起来Fabric认为Answers没有安装在我的应用程序中,即使它是。我对事件跟踪不感兴趣,我只需要metrics stats

问题解释

Fabric Crashlytics工具包来自bundled together with Answers,对于我的大多数应用程序,每当我设置Crashlytics时,Answers也会设置,我可以在Fabric Dashboard上看到统计信息。

然而,对于我的几个应用程序,我看不到统计数据,似乎Answers已被禁用。仪表板显示查看统计信息Answers is required

但是,当我查看我的Fabric Mac客户端时,它说这个应用程序Answers kit is installed and enabled

让我们回到应用程序的网络仪表板all the options for stats are disabled except Crashlytics,与其他应用程序不同,应用程序本身有点灰色。

首先详细说明keeps waiting for "Events"并建议我应该重新安装App(我现在已经做过很多次了。)

过了一会儿it says no events were received,它要求我执行全新安装并启用调试模式。

我的配置

我的pod文件是:

pod 'Fabric'
pod 'Crashlytics'

我在AppDelegate中设置我的Fabric套件,如:

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

我启用了调试模式,如:

[[Fabric sharedSDK] setDebug: YES];

到目前为止我做了什么

  1. 确保安装了Answers。
  2. 启用调试模式。 Fabric says它可以告诉我是否启用了Answers并发送事件,但我还没有看到任何关于它的日志。我收到的唯一三个日志是版本号和已下载设置并可供使用的通知。
  3. 制作新装置
  4. 检查调试模式的日志,确认Fabric的设置已下载并可以使用。
  5. 添加了Fastlane Kit以创建构建交付,以查看我的App和Fabric之间的通信是否存在问题。构建正确显示并正在正确上载,但再次,没有答案。
  6. 我甚至记录了登录事件,即使我不需要它,只是为了看它是否开始传输Answers数据。

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

    App运行时还有这个有趣的日志:

    [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
    )}
    

    重置模拟器后,每当我尝试重新安装时,它都会弹出。另外,检查Cache中Fabrics Data中的设置json。好奇的一点:

    "features": {
        "collect_logged_exceptions": true,
        "collect_reports": false,
        "collect_analytics": false,
        "prompt_enabled": false,
        "push_enabled": true
      }
    

    可以看到完整的JSON here

    我该如何解决这个问题?

4 个答案:

答案 0 :(得分:1)

Mike来自Fabric。是的,Answers包含在Crashlytics中,但是在您在Fabric仪表板上启用它并接受特定于Answers的条款和条件之前,不会收集任何数据。您需要做的是包括Crashlytics,一旦应用程序在您的仪表板中处于活动状态,然后前往仪表板中的任何其他页面并从Web UI启用Answers。

之后,我们等待两分钟,看看是否有任何事件数据。通常,运行干净的应用程序,构建和运行(或卸载并重新安装)将获取发送的数据,然后使仪表板可见。至于为什么它在您的应用程序中没有提前工作,我仍然不清楚,但可能是竞争条件或我们的一个缓存没有正确传播数据。

修改:添加了启用Answers按钮的图片。

enter image description here

答案 1 :(得分:1)

在2018年回答此问题,以防有人碰到它。我需要连接到wifi才能将事件发送到Fabric。它无法通过蜂窝发送,或者我的手机连接不良。立即通过wifi工作。

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

对于Swift

首先只访问Crashlytics手册和Xcode

  1. 我在我的应用上安装它。然后你会收到来自的欢迎邮件 Crashlytics'

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

  3. 在Fabric的Web UI上,

    1. 我看到了生成的崩溃事件。
    2. 返回Xcode

      1. 停止调试,我尝试删除使应用程序崩溃的代码行,而不是来自https://fabric.io/kits/ios/answers/features的应用事件触发器 (只更改一行代码)然后再次运行,我尝试单击以运行事件
      2. 转到Fabric Web UI

        1. 点击进入网页用户界面的另一页,例如保留,增长等。

        2. Fabric web UI显示术语&条件要求您启用。

        3. 从现在开始,Fabric UI仍在显示“等待活动”

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

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

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

          4. 点击从Xcode再次运行您的应用

          5. 尝试点击按钮生成的活动。

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

          7. 就是这样。成功

          8. 这是我奋斗了好几个小时后的全部步骤。希望这会帮助你。