Crash on Error Code: -1001 Error: NSURLErrorTimedOut

Crash on Error Code: -1001 Error: NSURLErrorTimedOut

我遇到了以下崩溃(0.05% 的崩溃率,所以我还没有重现它):

0   libdispatch.dylib 0x208b2028 _dispatch_semaphore_signal_slow + 174
!   1   MyProject 0x00253f39 __64-[CRNSURLSessionTaskProxy wrapDataCompletionHandler:forSession:]_block_invoke + 422
2   CFNetwork 0x2120796d __75-[__NSURLSessionLocal taskForClass:request:uploadFile:bodyData:completion:]_block_invoke + 14
3   CFNetwork 0x21216ef7 __49-[__NSCFLocalSessionTask _task_onqueue_didFinish]_block_invoke + 276
4   Foundation 0x2150a52d __NSBLOCKOPERATION_IS_CALLING_OUT_TO_A_BLOCK__ + 6
5   Foundation 0x2146beff -[NSBlockOperation main] + 144
6   Foundation 0x2145e2ef -[__NSOperationInternal _start:] + 772
7   Foundation 0x2150c7ed __NSOQSchedule_f + 190
8   libdispatch.dylib 0x208adf97 _dispatch_queue_drain + 1760
9   libdispatch.dylib 0x208a6f2f _dispatch_queue_invoke + 280
10  libdispatch.dylib 0x208af325 _dispatch_root_queue_drain + 398
11  libdispatch.dylib 0x208af193 _dispatch_worker_thread3 + 92
12  libsystem_pthread.dylib 0x20a3ce0d _pthread_wqthread + 1022
13  libsystem_pthread.dylib 0x20a3c9fc start_wqthread + 6

崩溃仅出现在 iOS9,none 出现在 iOS8 上,但这可能只是巧合。我也通过 Crittercism 面包屑看到了这一点:

我也在使用确实命中网络层的后台提取。

知道为什么会这样吗?

在我看来,这像是 Crittercism 的一个错误。 class CRNSURLSessionTaskProxy 是 Crittercism class(见下文),因此它在他们的代码中崩溃,Crittercism 面包屑中的错误证实了这一点。

class 名称的唯一 Google 命中(除此问题外)是 this one。如果您查看该转储中以 CR 开头的其他 class,您将看到 CRBreadcrumbsCRCrash

这里还有 Hopper 反汇编程序中 Crittercism 框架的转储:

我会说很有结论。