com.apple.NSURLSession-work EXC_BAD_ACCESS 崩溃调试

com.apple.NSURLSession-work EXC_BAD_ACCESS Crash debugging

我看到了以下崩溃报告,但无法重现。我将如何调试它?这是 AFNetworking 问题吗?我使用的是 2.4.1 版本。

Crashed: com.apple.NSURLSession-work
EXC_BAD_ACCESS KERN_INVALID_ADDRESS at 0x0000000000000000

Thread : Crashed: com.apple.NSURLSession-work
0  CoreFoundation                 0x0000000184aad978 CFDictionaryGetValue + 56
1  Foundation                     0x0000000185aa9300 _NSSetLongLongValueAndNotify + 72
2  Foundation                     0x0000000185aa9300 _NSSetLongLongValueAndNotify + 72
3  CFNetwork                      0x0000000184543468 -[__NSCFLocalSessionTask _task_onqueue_didFinish] + 472
4  CFNetwork                      0x0000000184544b38 -[__NSCFLocalSessionTask connection:didFinishLoadingWithError:] + 40
5  CFNetwork                      0x000000018458d030 __46-[__NSCFURLSessionConnection _task_sendFinish]_block_invoke + 136
6  libdispatch.dylib              0x0000000196a49994 _dispatch_call_block_and_release + 24
7  libdispatch.dylib              0x0000000196a49954 _dispatch_client_callout + 16
8  libdispatch.dylib              0x0000000196a540a4 _dispatch_queue_drain + 1448
9  libdispatch.dylib              0x0000000196a4ca5c _dispatch_queue_invoke + 132
10 libdispatch.dylib              0x0000000196a56318 _dispatch_root_queue_drain + 720
11 libdispatch.dylib              0x0000000196a57c4c _dispatch_worker_thread3 + 108
12 libsystem_pthread.dylib        0x0000000196c2922c _pthread_wqthread + 816

是的,很可能是 AFNetworking 错误(已在 2.5.0 中修复)。具体来说,这个:

https://github.com/AFNetworking/AFNetworking/issues/1477

如果不是,那么它可能是类似的东西——试图观察 URL 会话任务的某些方面的键值观察者已被释放,并且在被释放之前没有停止观察该任务。

我遇到了同样的问题,我发现这是因为我使用的是 Firebase SDK 并将其升级到 7.0.0,(尽管从 > 6.32.1 到 7.0.0 的许多开发人员都报告了这个问题)所以firebasePerformance 首先导致了这个问题,后来在使用 SDWebImage 下载图像时导致崩溃。有关此问题的更多信息,请参见此处:

firebase/firebase-ios-sdk#6734

Firebase 最近修复了此问题并发布了 FirebasePerformance (7.0.1) 的新版本升级到版本 7.0.1 后,我无法再重现崩溃。

所以将 FirebasePerformance SDK 升级到 7.0.1 版本对我有用。