Alamofire 仅在运行归档应用程序时崩溃
Posted
技术标签:
【中文标题】Alamofire 仅在运行归档应用程序时崩溃【英文标题】:Alamofire crashes only when running archived app 【发布时间】:2016-10-21 13:14:36 【问题描述】:我在使用 Alamofire 的 HTTP 请求时遇到问题。当我尝试使用 XCode 调试器重现问题时,它不会崩溃,但是当我使用 ios 10.0.2 在 iPad 上归档应用并运行 .ipa 文件时,我总是会崩溃。
这是在运行存档应用时崩溃的调用示例:
static func loginOnServerUrl(serverURL: String, user: String, password: String,
successCallback: ((JSON) -> Void)? = nil, failureCallback: ((Error) -> Void)? = nil)
let params = [
ApiParams.ACTION : "login",
ApiParams.LoginParams.USER : user,
ApiParams.LoginParams.PASSWORD : password,
]
Alamofire.request("http://\(serverURL)/AppSrv", method: .get, parameters: params).responseJSON response in
switch response.result
case .success(let value):
//JSON raiz
let json = JSON(value)
for (key, value) in json.acceptingSigleValueAsArray
log("\(key) : \(value)")
if let successCallback = successCallback
successCallback(json)
case .failure(let error):
log(error.localizedDescription)
if let failureCallback = failureCallback
failureCallback(error)
这是我得到的崩溃日志之一:
Incident Identifier: ****
CrashReporter Key: *****
Hardware Model: iPad5,2
Process: ****
Path: ****
Identifier: ****
Version: 1.42 (1.2.3a)
Code Type: ARM-64 (Native)
Role: Foreground
Parent Process: launchd [1]
Coalition: ****
Date/Time: 2016-10-21 10:16:08.9811 +0200
Launch Time: 2016-10-21 10:16:06.2504 +0200
OS Version: iPhone OS 10.0.2 (14A456)
Report Version: 104
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Subtype: KERN_INVALID_ADDRESS at 0x000000059480bec8
Termination Signal: Segmentation fault: 11
Termination Reason: Namespace SIGNAL, Code 0xb
Terminating Process: exc handler [0]
Triggered by Thread: 0
Filtered syslog:
None found
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 libswiftCore.dylib 0x0000000100e19b6c 0x100c38000 + 1973100
1 myapp 0x00000001000c4d88 static ServerManager.(pingOnServerUrl(serverUrl : String, successCallback : (Int64) -> ()?, failureCallback : (Error) -> ()?) -> ()).(closure #1) (ServerManager.swift:0)
2 Alamofire 0x00000001003aca84 specialized DataRequest.(response<A where ...> (queue : DispatchQueue?, responseSerializer : A, completionHandler : (DataResponse<A.SerializedObject>) -> ()) -> Self).(closure #1).(closure #1) (ResponseSerialization.swift:0)
3 libdispatch.dylib 0x00000001889f1200 _dispatch_call_block_and_release + 24
4 libdispatch.dylib 0x00000001889f11c0 _dispatch_client_callout + 16
5 libdispatch.dylib 0x00000001889f5d6c _dispatch_main_queue_callback_4CF + 1000
6 CoreFoundation 0x0000000189b15f2c __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 12
7 CoreFoundation 0x0000000189b13b18 __CFRunLoopRun + 1660
8 CoreFoundation 0x0000000189a42048 CFRunLoopRunSpecific + 444
9 GraphicsServices 0x000000018b4c5198 GSEventRunModal + 180
10 UIKit 0x000000018fa15628 -[UIApplication _run] + 684
11 UIKit 0x000000018fa10360 UIApplicationMain + 208
12 myapp 0x00000001000bf024 main (AppDelegate.swift:16)
13 libdyld.dylib 0x0000000188a245b8 start + 4
Thread 1:
0 libsystem_kernel.dylib 0x0000000188b36a88 __workq_kernreturn + 8
1 libsystem_pthread.dylib 0x0000000188bf936c _pthread_wqthread + 1452
2 libsystem_pthread.dylib 0x0000000188bf8db4 start_wqthread + 4
Thread 2:
0 libsystem_kernel.dylib 0x0000000188b36a88 __workq_kernreturn + 8
1 libsystem_pthread.dylib 0x0000000188bf936c _pthread_wqthread + 1452
2 libsystem_pthread.dylib 0x0000000188bf8db4 start_wqthread + 4
Thread 3:
0 libsystem_pthread.dylib 0x0000000188bf8db0 start_wqthread + 0
Thread 4:
0 libsystem_pthread.dylib 0x0000000188bf8db0 start_wqthread + 0
Thread 5:
0 libsystem_kernel.dylib 0x0000000188b36a88 __workq_kernreturn + 8
1 libsystem_pthread.dylib 0x0000000188bf936c _pthread_wqthread + 1452
2 libsystem_pthread.dylib 0x0000000188bf8db4 start_wqthread + 4
Thread 6 name: com.apple.uikit.eventfetch-thread
Thread 6:
0 libsystem_kernel.dylib 0x0000000188b1816c mach_msg_trap + 8
1 libsystem_kernel.dylib 0x0000000188b17fdc mach_msg + 72
2 CoreFoundation 0x0000000189b15cec __CFRunLoopServiceMachPort + 192
3 CoreFoundation 0x0000000189b13908 __CFRunLoopRun + 1132
4 CoreFoundation 0x0000000189a42048 CFRunLoopRunSpecific + 444
5 Foundation 0x000000018a550b1c -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 304
6 Foundation 0x000000018a57160c -[NSRunLoop(NSRunLoop) runUntilDate:] + 96
7 UIKit 0x000000019038ac7c -[UIEventFetcher threadMain] + 136
8 Foundation 0x000000018a64e50c __NSThread__start__ + 1024
9 libsystem_pthread.dylib 0x0000000188bfb860 _pthread_body + 240
10 libsystem_pthread.dylib 0x0000000188bfb770 _pthread_body + 0
11 libsystem_pthread.dylib 0x0000000188bf8dbc thread_start + 4
Thread 7 name: com.apple.NSURLConnectionLoader
Thread 7:
0 libsystem_kernel.dylib 0x0000000188b1816c mach_msg_trap + 8
1 libsystem_kernel.dylib 0x0000000188b17fdc mach_msg + 72
2 CoreFoundation 0x0000000189b15cec __CFRunLoopServiceMachPort + 192
3 CoreFoundation 0x0000000189b13908 __CFRunLoopRun + 1132
4 CoreFoundation 0x0000000189a42048 CFRunLoopRunSpecific + 444
5 CFNetwork 0x000000018a22fcec +[NSURLConnection(Loader) _resourceLoadLoop:] + 336
6 Foundation 0x000000018a64e50c __NSThread__start__ + 1024
7 libsystem_pthread.dylib 0x0000000188bfb860 _pthread_body + 240
8 libsystem_pthread.dylib 0x0000000188bfb770 _pthread_body + 0
9 libsystem_pthread.dylib 0x0000000188bf8dbc thread_start + 4
Thread 0 crashed with ARM Thread State (64-bit):
x0: 0x0000000170246c30 x1: 0x0000000170246c30 x2: 0x0000000000000008 x3: 0x0000000188b7c250
x4: 0x0000000100e099a4 x5: 0x0000000100df14f8 x6: 0x0000000000000065 x7: 0x0000000170287c78
x8: 0x000000059480bea8 x9: 0x0000000ffffffff8 x10: 0x0000000000000001 x11: 0xbaddc0dedeadbead
x12: 0x0000000000000177 x13: 0x0000000000000177 x14: 0x0000000100be6a30 x15: 0x0000000000000000
x16: 0x0000000100e19b54 x17: 0xb000000000000003 x18: 0x0000000000000000 x19: 0x0000000000000000
x20: 0x0000000100e94060 x21: 0x00000001ae195ef8 x22: 0x000000017046cf40 x23: 0xb000000000000003
x24: 0x0000000000000000 x25: 0x0000000000000000 x26: 0x0000000000000004 x27: 0x0000000100be6a30
x28: 0x0000000170246c30 fp: 0x000000016fd46b60 lr: 0x00000001000c4d88
sp: 0x000000016fd46870 pc: 0x0000000100e19b6c cpsr: 0x20000000
【问题讨论】:
【参考方案1】:将 Swift 编译器优化级别更改为
快速的单个文件优化
而不是整个模块! 整个模块优化和 Alamofire 似乎有些不寻常!
【讨论】:
以上是关于Alamofire 仅在运行归档应用程序时崩溃的主要内容,如果未能解决你的问题,请参考以下文章
本地化应用程序仅在非基本语言上崩溃,并且仅在未使用Xcode运行时崩溃