我正在努力调试在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
有什么想法吗?
答案 0 :(得分:0)
在response
调用之后,download
闭包很可能发生崩溃。似乎正在使用DownloadResponseSerializer<Any>
,这是用于JSON响应的类型。我不确定为什么它会在release()
上崩溃,但我想这是免费发行后的版本。