作者:金花婆婆2502921867 | 来源:互联网 | 2023-01-05 18:52
最近,我们的应用中发生了一些非常奇怪的崩溃。它们不能可靠地复制。到目前为止,所有崩溃均发生在iOS 11设备上。我们的应用程序是用Swift 3.2编写的。我们将Xcode 9.0.1与标准构建系统一起使用(而不是新的Swift构建系统)。似乎在执行某个Web请求后,该应用程序崩溃并显示以下堆栈跟踪:
Crashed: com.apple.main-thread
0 OurFramework 0x105283e84 __swift_deallocate_boxed_opaque_existential_0 + 2588
1 OurFramework 0x10528366c __swift_deallocate_boxed_opaque_existential_0 + 516
2 OurFramework 0x10528b368 swift_rt_swift_storeEnumTagSinglePayload + 24748
3 OurFramework 0x1052911cc swift_rt_swift_storeEnumTagSinglePayload + 48912
4 OurFramework 0x1052133d8 __swift_memmove_array32_8 + 1336
5 OurFramework 0x10521304c __swift_memmove_array32_8 + 428
6 OurFramework 0x105292504 swift_rt_swift_storeEnumTagSinglePayload + 53832
7 Alamofire 0x1057cac64 _T09Alamofire11DataRequestC8responseACXDSo13DispatchQueueCSg5queue_x0D10SerializeryAA0B8ResponseVy16SerializedObjectQzGc17completionHandlertAA0biH8ProtocolRzlFyycfU_yycfU_AA0biH0VyypG_Tg5 + 264
8 Alamofire 0x1057ca3f8 _T0Ix_IyB_TR + 36
9 libdispatch.dylib 0x1860c5088 _dispatch_call_block_and_release + 24
10 libdispatch.dylib 0x1860c5048 _dispatch_client_callout + 16
11 libdispatch.dylib 0x1860d1b74 _dispatch_main_queue_callback_4CF$VARIANT$mp + 1016
12 CoreFoundation 0x1866e9eb0 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 12
13 CoreFoundation 0x1866e7a8c __CFRunLoopRun + 2012
14 CoreFoundation 0x186607fb8 CFRunLoopRunSpecific + 436
15 GraphicsServices 0x18849ff84 GSEventRunModal + 100
16 UIKit 0x18fbdc2e8 UIApplicationMain + 208
17 OurApp 0x104de98b0 main (main.swift:19)
18 libdyld.dylib 0x18612a56c start + 4
我们正在使用Crashlytics跟踪崩溃,我不确定是否是由于符号问题导致我没有看到比这更多的信息,但跟踪表明在Web请求期间某些东西出了问题。我们的应用程序使用Alamofire发出Web请求。由于崩溃总是在应用向后端请求后立即发生,因此我们从发生崩溃的测试结果中也支持该理论。难道是在iOS 11中Alamofire使用的基础NSURLSession中发生了某些变化?也许iOS 11使用的是不同的缓存策略,还是导致alamofire以导致此崩溃的方式调用结果完成处理程序的方法?以前有没有人见过这种崩溃?__swift_deallocate_boxed_opaque_existential是什么和swift_rt_swift_storeEnumTagSinglePayload是什么意思?任何帮助,不胜感激,谢谢!