今天(在模拟器中)调试应用程序时,我注意到在几分钟的时间内,日志中输出了数百条这些消息:

Task <86E3C73C-E007-4D21-9EE5-C7F9F86EC1C4>.<251> load failed with error Error Domain=NSURLErrorDomain Code=-999 "cancelled" UserInfo={NSErrorFailingURLStringKey=https://reports.crashlytics.com/sdk-api/v1/platforms/ios/apps/my.bundle.id/reports, NSErrorFailingURLKey=https://reports.crashlytics.com/sdk-api/v1/platforms/ios/apps/my.bundle.id/reports, _NSURLErrorRelatedURLSessionTaskErrorKey=(
    "BackgroundUploadTask <86E3D75C-E017-4D31-9EE5-C7F9F86EC9C4>.<251>",
    "LocalUploadTask <86E3C35C-E007-4D21-9EE5-C4F9F86EC1C4>.<251>"
), _NSURLErrorFailingURLSessionTaskErrorKey=BackgroundUploadTask <86E3C75C-E017-4D21-9EE5-C7A9F86FC4C4>.<251>, NSLocalizedDescription=cancelled} [-999]

即使我没有触摸应用程序中的任何内容,它们仍会继续出现。

该错误表明请求被取消。但是为什么要取消它们呢?我知道我可以在自己的task.cancel()上调用URLSessionTasks来产生相同的错误,但是我无法控制Firebase Crashlytics在应用程序后台执行的操作。

每当我不执行任何操作时,这些日志就会每2秒发送一次。如果我开始在应用程序中单击,它们就会大量涌入。

这是每个日志中的增量。在我粘贴的错误消息中显示<251>的位置,此数字会在每条消息中递增。这是我在短期内收到的第251条取消消息。似乎它一直在重试。

我确实有互联网连接,因为我的应用程序的其余部分都依赖于它(并且可以工作)。调试网络流量时,似乎根本没有触发这些crashlytics请求。我只看到来自我自己的网络调用的流量,所以我认为我可以放心地认为这不是会耗尽用户移动数据的错误。

我能想到的唯一与此有关的事实是,我们办公室的WiFi目前正在关闭,因此我正在通过自己的iPhone X的4G网络共享互联网。但是请记住,我实际上是在Mac上调试模拟器。因此,模拟器本质上是使用4G网络。

知道为什么会发生或如何解决?非常烦人的输出。在4G上调试我的实际设备时,这不会发生,并且我认为在Mac处于WiFi上时调试模拟器时,它不会发生(尽管由于某些原因我现在无法尝试)。

编辑:最奇怪的部分是,我在执行此操作时偶然发现自己的dev-app崩溃,并且实际上我收到了Firebase的电子邮件,称他们在几分钟后检测到崩溃。所以呢..?即使我收到了这些取消的消息,崩溃报告显然也有效。

最佳答案

您是否/正在使用具有自定义ssl根证书的代理?我正在使用带有自定义ssl根证书的代理工具来记录我的https请求,但是Crashlytics显然不喜欢这样...

关于ios - 当iPhone Simulator(和Macbook)连接到4G网络上时,Firebase crashlytics在日志中发布数百条 "cancelled"消息,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54476257/

10-12 00:26
查看更多