iOS Fabric Crashlytics Answers Kit 未收集数据
iOS Fabric Crashlytics Answers Kit not Collecting Data
问题总结
更新: 我已经以某种方式解决了这个问题,但我不确定如何解决。我刚刚从我的仪表板中删除了应用程序,重新创建它们,清理了 Fabrics 和 Crashlytics 缓存,在尝试了四五次之后,它开始自动运行了。我仍然想知道它是如何发生的,以及如何在不完全删除应用程序的情况下真正解决它。
TL;DR 我没有从 Answers 工具包中收到任何统计数据,看起来 Fabric 认为 Answers 没有安装在我的应用程序中,尽管它是。我对事件跟踪不感兴趣,我只需要 metrics stats.
问题解释
Fabric Crashlytics 工具包 bundled together with Answers 并且对于我的大多数应用程序,每当我设置 Crashlytics 时,Answers 也会设置,我可以在我的 Fabric 仪表板上看到统计信息。
然而,对于我的几个应用程序,我看不到统计信息,而且答案似乎被禁用了。仪表板显示用于查看统计信息,Answers is required。
但是当我查看我的 Fabric Mac 客户端时,它说对于这个应用程序,Answers kit is installed and enabled。
让我们回到应用程序的网络仪表板,all the options for stats are disabled except Crashlytics 与其他应用程序不同,应用程序本身有点灰显。
首先详细介绍 keeps waiting for "Events" 并建议我重新安装应用程序(我已经安装了很多次)。
过了一会儿,it says no events were received 它要求我执行全新安装并启用调试 mode.
我的配置
我的 pod 文件是:
pod 'Fabric'
pod 'Crashlytics'
我正在 AppDelegate 中设置我的 Fabric 套件,例如:
[Fabric with:@[[Crashlytics class]]];
并且我已经启用了调试 mod,例如:
[[Fabric sharedSDK] setDebug: YES];
到目前为止我做了什么
- 确保已安装 Answers。
- 启用调试mode。 Fabric says 它可以告诉我 Answers 是否已启用并发送事件,但我没有看到任何关于它的日志。我收到的唯一三个日志是版本号和设置已下载并可供使用的通知。
- 全新安装
- 已检查调试日志 mode,确认 Fabric 的设置已下载并可供使用。
- 添加了 Fastlane Kit 以创建构建交付以查看我的应用程序和 Fabric 之间的通信是否存在问题。构建正确显示并正确上传,但同样没有答案。
我什至记录了一个登录事件,尽管我不需要它,只是为了看看它是否开始传输答案数据。
[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.
我该如何解决这个问题?
我认为您的 AppDelegate 应该如下所示:
[Fabric with:@[[Crashlytics class], [Answers class]]];
这里是来自 Fabric 的迈克。是的,Answers 包含在 Crashlytics 中,但是在您在 Fabric 仪表板上启用它并接受特定于 Answers 的条款和条件之前,不会收集任何数据。您需要做的是包含 Crashlytics,一旦该应用程序在您的仪表板中处于活动状态,然后前往仪表板中的任何其他页面并启用来自网络的答案 UI.
之后,我们等待两分钟,看看是否看到任何事件数据。通常,运行清理您的应用程序、构建和 运行(或卸载并重新安装)将获取发送过来的数据,然后使仪表板可见。至于为什么它不能在您的应用程序中更早地工作,我仍然不清楚,但也许是竞争条件或我们的缓存之一没有正确传播数据。
编辑:添加了一张图片,展示了启用“答案”按钮的外观。
对于Swift
首先只看 Crashlytics 手册,Xcode
我把它安装在我的应用程序上。然后你会收到来自
Crashlytics'
我尝试按照说明测试崩溃事件。 https://fabric.io/kits/ios/crashlytics/features
在 Fabric 的网络 UI 上,
- 我看到生成了崩溃事件。
返回Xcode
- 停止调试,我尝试从 https://fabric.io/kits/ios/answers/features 删除导致应用程序崩溃的代码行并改为放置 Answer 事件触发器
(只更改一行代码)然后再次 运行,我尝试点击 运行 事件
转到 Fabric Web UI
点击网页的其他页面UI 例如保留、增长等
Fabric web UI 显示要求您启用的条款和条件。
从现在开始 Fabric UI 仍然显示 'waiting for the event'
您收到来自 fabric 的邮件,详情为 "Fabric analytics has just been enabled by you"
从 Xcode
停止调试您的应用
从 iPhone 或模拟器中删除您的应用程序
从 Xcode
再次点击 运行 您的应用
尝试点击按钮生成事件。
Fabric UI对话收到触发事件。
就是这样。成功
这是我奋斗了好几个小时后的全部步骤。希望这会帮助你。
在 2018 年回答这个问题,以防有人遇到它。我需要连接到 wifi 才能将事件发送到 Fabric。要么它不会通过手机发送,要么我的 phone 连接有问题。立即通过 wifi 工作。
问题总结
更新: 我已经以某种方式解决了这个问题,但我不确定如何解决。我刚刚从我的仪表板中删除了应用程序,重新创建它们,清理了 Fabrics 和 Crashlytics 缓存,在尝试了四五次之后,它开始自动运行了。我仍然想知道它是如何发生的,以及如何在不完全删除应用程序的情况下真正解决它。
TL;DR 我没有从 Answers 工具包中收到任何统计数据,看起来 Fabric 认为 Answers 没有安装在我的应用程序中,尽管它是。我对事件跟踪不感兴趣,我只需要 metrics stats.
问题解释
Fabric Crashlytics 工具包 bundled together with Answers 并且对于我的大多数应用程序,每当我设置 Crashlytics 时,Answers 也会设置,我可以在我的 Fabric 仪表板上看到统计信息。
然而,对于我的几个应用程序,我看不到统计信息,而且答案似乎被禁用了。仪表板显示用于查看统计信息,Answers is required。
但是当我查看我的 Fabric Mac 客户端时,它说对于这个应用程序,Answers kit is installed and enabled。
让我们回到应用程序的网络仪表板,all the options for stats are disabled except Crashlytics 与其他应用程序不同,应用程序本身有点灰显。
首先详细介绍 keeps waiting for "Events" 并建议我重新安装应用程序(我已经安装了很多次)。
过了一会儿,it says no events were received 它要求我执行全新安装并启用调试 mode.
我的配置
我的 pod 文件是:
pod 'Fabric'
pod 'Crashlytics'
我正在 AppDelegate 中设置我的 Fabric 套件,例如:
[Fabric with:@[[Crashlytics class]]];
并且我已经启用了调试 mod,例如:
[[Fabric sharedSDK] setDebug: YES];
到目前为止我做了什么
- 确保已安装 Answers。
- 启用调试mode。 Fabric says 它可以告诉我 Answers 是否已启用并发送事件,但我没有看到任何关于它的日志。我收到的唯一三个日志是版本号和设置已下载并可供使用的通知。
- 全新安装
- 已检查调试日志 mode,确认 Fabric 的设置已下载并可供使用。
- 添加了 Fastlane Kit 以创建构建交付以查看我的应用程序和 Fabric 之间的通信是否存在问题。构建正确显示并正确上传,但同样没有答案。
我什至记录了一个登录事件,尽管我不需要它,只是为了看看它是否开始传输答案数据。
[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.
我该如何解决这个问题?
我认为您的 AppDelegate 应该如下所示:
[Fabric with:@[[Crashlytics class], [Answers class]]];
这里是来自 Fabric 的迈克。是的,Answers 包含在 Crashlytics 中,但是在您在 Fabric 仪表板上启用它并接受特定于 Answers 的条款和条件之前,不会收集任何数据。您需要做的是包含 Crashlytics,一旦该应用程序在您的仪表板中处于活动状态,然后前往仪表板中的任何其他页面并启用来自网络的答案 UI.
之后,我们等待两分钟,看看是否看到任何事件数据。通常,运行清理您的应用程序、构建和 运行(或卸载并重新安装)将获取发送过来的数据,然后使仪表板可见。至于为什么它不能在您的应用程序中更早地工作,我仍然不清楚,但也许是竞争条件或我们的缓存之一没有正确传播数据。
编辑:添加了一张图片,展示了启用“答案”按钮的外观。
对于Swift
首先只看 Crashlytics 手册,Xcode
我把它安装在我的应用程序上。然后你会收到来自 Crashlytics'
我尝试按照说明测试崩溃事件。 https://fabric.io/kits/ios/crashlytics/features
在 Fabric 的网络 UI 上,
- 我看到生成了崩溃事件。
返回Xcode
- 停止调试,我尝试从 https://fabric.io/kits/ios/answers/features 删除导致应用程序崩溃的代码行并改为放置 Answer 事件触发器 (只更改一行代码)然后再次 运行,我尝试点击 运行 事件
转到 Fabric Web UI
点击网页的其他页面UI 例如保留、增长等
Fabric web UI 显示要求您启用的条款和条件。
从现在开始 Fabric UI 仍然显示 'waiting for the event'
您收到来自 fabric 的邮件,详情为 "Fabric analytics has just been enabled by you"
从 Xcode
停止调试您的应用
从 iPhone 或模拟器中删除您的应用程序
从 Xcode
再次点击 运行 您的应用
尝试点击按钮生成事件。
Fabric UI对话收到触发事件。
就是这样。成功
这是我奋斗了好几个小时后的全部步骤。希望这会帮助你。
在 2018 年回答这个问题,以防有人遇到它。我需要连接到 wifi 才能将事件发送到 Fabric。要么它不会通过手机发送,要么我的 phone 连接有问题。立即通过 wifi 工作。