在Alamofire深处坠毁

时间:2018-08-09 11:16:30

标签: ios crash alamofire exc-bad-access

我正在努力调试在Alamofire中看到的崩溃。更麻烦的是,这是我们提供给客户的SDK,然后在其生产应用程序中崩溃。据我所知,这是不可复制的或未被用户注意到的,它只是显示在客户端的崩溃日志中。

为了进一步增加复杂性,我们将框架与许多框架(包括Alamofire)静态地构建在一起,然后交付给客户端,客户端将其引入他们的应用程序中。我们的SDK是100%Swift,而客户端是Objective-C和Swift的组合。

崩溃日志如下,其中一些标识符被混淆:

# Platform: ios
# Session ID: undefined
# Date: 2018-07-20T07:57:00Z
# OS Version: 11.4.0 (15F79)
# Device: iPhone 8 Plus
# RAM Free: 6%
# Disk Free: 67.5%

#1. Crashed: com.example.RequestQueue
0  libobjc.A.dylib                0x1842497f4 objc_object::release() + 16
1  MYSDK                         0x101f7bcb8 _T09Alamofire15DownloadRequestC8responseACXDSo13DispatchQueueCSg5queue_x0D10SerializeryAA0B8ResponseVy16SerializedObjectQzGc17completionHandlertAA0biH8ProtocolRzlFyycfU_yycfU_AA0biH0VyypG_Tg5TA + 132
2  MYSDK                         0x101f7bcb8 _T09Alamofire15DownloadRequestC8responseACXDSo13DispatchQueueCSg5queue_x0D10SerializeryAA0B8ResponseVy16SerializedObjectQzGc17completionHandlertAA0biH8ProtocolRzlFyycfU_yycfU_AA0biH0VyypG_Tg5TA + 132
3  libswiftCore.dylib             0x102488f10 _swift_release_dealloc + 28
4  MYSDK                         0x101f7bc20 _T09Alamofire16DownloadResponseVyypGWh0_ + 144
5  libswiftCore.dylib             0x102488f10 _swift_release_dealloc + 28
6  libsystem_blocks.dylib         0x184a04a5c _Block_release + 152
7  libdispatch.dylib              0x184964a60 _dispatch_client_callout + 16
8  libdispatch.dylib              0x1849a31d4 _dispatch_queue_serial_drain$VARIANT$armv81 + 568
9  libdispatch.dylib              0x1849a3af8 _dispatch_queue_invoke$VARIANT$armv81 + 328
10 libdispatch.dylib              0x1849a449c _dispatch_root_queue_drain_deferred_wlh$VARIANT$armv81 + 332
11 libdispatch.dylib              0x1849ac46c _dispatch_workloop_worker_thread$VARIANT$armv81 + 612
12 libsystem_pthread.dylib        0x184c97e70 _pthread_wqthread + 860
13 libsystem_pthread.dylib        0x184c97b08 start_wqthread + 4

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

response调用之后,download闭包很可能发生崩溃。似乎正在使用DownloadResponseSerializer<Any>,这是用于JSON响应的类型。我不确定为什么它会在release()上崩溃,但我想这是免费发行后的版本。