我需要帮助。
我正在使用Objective-c编写的旧iOS应用程序。它于2014年发布,现在我已将项目迁移到Xcode 8.迁移后,一切都按预期工作,除非应用程序处于后台时出现奇怪的崩溃(不是立即但在一段时间后)。调试很困难,因为只有当设备与Xcode断开连接时才会发生崩溃。我检查了设备日志,似乎它的核心数据崩溃了:
Incident Identifier: BDD70C46-6573-44A7-85AB-620E6FBA207F
CrashReporter Key: c04f591f9e0cc9d1991ce10e33ebcabd56affbe6
Hardware Model: iPhone8,4
Process: myApp [17746]
Path: /private/var/containers/Bundle/Application/878DB803-1DA5-46D7-8B50-655D43A5C28D/myApp.app/myApp
Identifier: com.example.myApp
Version: 2 (1.0.2)
Code Type: ARM-64 (Native)
Role: Foreground
Parent Process: launchd [1]
Coalition: com.example.myApp [16959]
Date/Time: 2017-09-19 14:34:57.1435 +0300
Launch Time: 2017-09-19 14:31:38.0853 +0300
OS Version: iPhone OS 10.3.3 (14G60)
Report Version: 104
Exception Type: EXC_CRASH (SIGKILL)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Termination Reason: Namespace <0xF>, Code 0x8badf00d
Triggered by Thread: 0
Filtered syslog:
None found
Thread 0 name: Dispatch queue: SQLQueue 0x100724310 for myApp.sqlite
Thread 0 Crashed:
0 libsqlite3.dylib 0x000000018f36d818 0x18f361000 + 51224
1 libsqlite3.dylib 0x000000018f36c9a4 0x18f361000 + 47524
2 libsqlite3.dylib 0x000000018f36c9a4 0x18f361000 + 47524
3 libsqlite3.dylib 0x000000018f36c2c4 0x18f361000 + 45764
4 libsqlite3.dylib 0x000000018f36bf24 0x18f361000 + 44836
5 CoreData 0x000000019113e0b0 -[NSSQLiteConnection prepareSQLStatement:] + 468
6 CoreData 0x000000019125f178 -[NSSQLiteConnection updateRow:forRequestContext:] + 492
7 CoreData 0x0000000191307f28 _writeChangesForSaveRequest + 1128
8 CoreData 0x0000000191309584 _executeSaveChangesRequest + 388
9 CoreData 0x00000001912ff5f0 -[NSSQLSaveChangesRequestContext executeRequestUsingConnection:] + 44
10 CoreData 0x00000001912170c4 __52-[NSSQLDefaultConnectionManager handleStoreRequest:]_block_invoke + 256
11 libdispatch.dylib 0x0000000100455a10 0x100454000 + 6672
12 libdispatch.dylib 0x00000001004625bc 0x100454000 + 58812
13 CoreData 0x0000000191216f64 -[NSSQLDefaultConnectionManager handleStoreRequest:] + 208
14 CoreData 0x00000001912d9824 -[NSSQLCoreDispatchManager routeStoreRequest:] + 272
15 CoreData 0x000000019124475c -[NSSQLCore dispatchRequest:withRetries:] + 236
16 CoreData 0x0000000191240578 -[NSSQLCore processSaveChanges:forContext:] + 200
17 CoreData 0x0000000191144f10 -[NSSQLCore executeRequest:withContext:error:] + 724
18 CoreData 0x000000019122384c __65-[NSPersistentStoreCoordinator executeRequest:withContext:error:]_block_invoke + 3492
19 CoreData 0x000000019121c0f0 -[NSPersistentStoreCoordinator _routeHeavyweightBlock:] + 276
20 CoreData 0x0000000191144adc -[NSPersistentStoreCoordinator executeRequest:withContext:error:] + 408
21 CoreData 0x000000019116597c -[NSManagedObjectContext save:] + 2548
22 myApp 0x00000001000cd0dc 0x1000c0000 + 53468
23 myApp 0x00000001000cbc24 0x1000c0000 + 48164
24 CoreLocation 0x00000001970ee828 0x1970de000 + 67624
25 CoreLocation 0x00000001970edfcc 0x1970de000 + 65484
26 CoreLocation 0x00000001970e11d8 0x1970de000 + 12760
27 CoreFoundation 0x000000018ee1930c __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 20
28 CoreFoundation 0x000000018ee18b28 __CFRunLoopDoBlocks + 288
29 CoreFoundation 0x000000018ee16e1c __CFRunLoopRun + 1884
30 CoreFoundation 0x000000018ed46da4 CFRunLoopRunSpecific + 424
31 GraphicsServices 0x00000001907b1074 GSEventRunModal + 100
32 UIKit 0x0000000195001c9c UIApplicationMain + 208
33 myApp 0x00000001000e4574 0x1000c0000 + 148852
34 libdyld.dylib 0x000000018dd5559c start + 4
Thread 1 name: Dispatch queue: BKSProcessAssertionClient
Thread 1:
0 libsystem_kernel.dylib 0x000000018de47224 mach_msg_trap + 8
1 libsystem_kernel.dylib 0x000000018de4709c mach_msg + 72
2 libdispatch.dylib 0x000000010046d37c 0x100454000 + 103292
3 libdispatch.dylib 0x000000010046d780 0x100454000 + 104320
4 libxpc.dylib 0x000000018df60edc xpc_connection_send_message_with_reply_sync + 196
5 BaseBoard 0x000000019095a944 -[BSXPCMessage sendSynchronouslyToConnection:error:] + 76
6 BaseBoard 0x0000000190957148 -[BSBaseXPCClient _sendMessage:withReplyHandler:waitForReply:waitDuration:] + 436
7 AssertionServices 0x00000001909a17c4 -[BKSProcessAssertionClient _assertionQueue_sendEvent:forMessageType:responseHandler:] + 136
8 AssertionServices 0x00000001909a0f78 -[BKSProcessAssertionClient sendCreateAssertion:] + 108
9 AssertionServices 0x00000001909a0968 -[BKSProcessAssertion _clientQueue_acquireAssertion] + 312
10 libdispatch.dylib 0x0000000100455a50 0x100454000 + 6736
11 libdispatch.dylib 0x0000000100455a10 0x100454000 + 6672
12 libdispatch.dylib 0x00000001004632e8 0x100454000 + 62184
13 libdispatch.dylib 0x0000000100459634 0x100454000 + 22068
14 libdispatch.dylib 0x0000000100465630 0x100454000 + 71216
15 libdispatch.dylib 0x000000010046539c 0x100454000 + 70556
16 libsystem_pthread.dylib 0x000000018df2b100 _pthread_wqthread + 1096
17 libsystem_pthread.dylib 0x000000018df2acac start_wqthread + 4
Thread 2 name: Dispatch queue: com.apple.CoreLocation.ConnectionClient.0x17013b6c0.events
Thread 2:
0 libsystem_kernel.dylib 0x000000018de47278 semaphore_timedwait_trap + 8
1 libdispatch.dylib 0x000000010047f238 0x100454000 + 176696
2 libdispatch.dylib 0x0000000100467db8 0x100454000 + 81336
3 CoreLocation 0x00000001970e1078 0x1970de000 + 12408
4 CoreLocation 0x00000001970e6118 0x1970de000 + 33048
5 CoreLocation 0x00000001970e5f18 0x1970de000 + 32536
6 CoreLocation 0x0000000197131e88 0x1970de000 + 343688
7 CoreLocation 0x000000019712e4f0 0x1970de000 + 328944
8 CoreLocation 0x000000019712e414 0x1970de000 + 328724
9 CoreLocation 0x000000019712fa80 0x1970de000 + 334464
10 libxpc.dylib 0x000000018df5f84c _xpc_connection_call_event_handler + 68
11 libxpc.dylib 0x000000018df5d358 _xpc_connection_mach_event + 1448
12 libdispatch.dylib 0x0000000100455ae0 0x100454000 + 6880
13 libdispatch.dylib 0x00000001004599d8 0x100454000 + 23000
14 libdispatch.dylib 0x0000000100463128 0x100454000 + 61736
15 libdispatch.dylib 0x0000000100458da0 0x100454000 + 19872
16 libdispatch.dylib 0x0000000100463128 0x100454000 + 61736
17 libdispatch.dylib 0x0000000100459634 0x100454000 + 22068
18 libdispatch.dylib 0x0000000100463128 0x100454000 + 61736
19 libdispatch.dylib 0x0000000100459634 0x100454000 + 22068
20 libdispatch.dylib 0x0000000100464358 0x100454000 + 66392
21 libdispatch.dylib 0x000000010046c57c 0x100454000 + 99708
22 libsystem_pthread.dylib 0x000000018df2afbc _pthread_wqthread + 772
23 libsystem_pthread.dylib 0x000000018df2acac start_wqthread + 4
Thread 3 name: com.apple.uikit.eventfetch-thread
Thread 3:
0 libsystem_kernel.dylib 0x000000018de47224 mach_msg_trap + 8
1 libsystem_kernel.dylib 0x000000018de4709c mach_msg + 72
2 CoreFoundation 0x000000018ee18e90 __CFRunLoopServiceMachPort + 192
3 CoreFoundation 0x000000018ee16ae4 __CFRunLoopRun + 1060
4 CoreFoundation 0x000000018ed46da4 CFRunLoopRunSpecific + 424
5 Foundation 0x000000018f861db4 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 304
6 Foundation 0x000000018f882b84 -[NSRunLoop(NSRunLoop) runUntilDate:] + 96
7 UIKit 0x000000019598b830 -[UIEventFetcher threadMain] + 136
8 Foundation 0x000000018f95f318 __NSThread__start__ + 996
9 libsystem_pthread.dylib 0x000000018df2d68c _pthread_body + 240
10 libsystem_pthread.dylib 0x000000018df2d59c _pthread_body + 0
11 libsystem_pthread.dylib 0x000000018df2acb4 thread_start + 4
Thread 4:
0 libsystem_pthread.dylib 0x000000018df2aca8 start_wqthread + 0
Thread 5 name: com.apple.NSURLConnectionLoader
Thread 5:
0 libsystem_kernel.dylib 0x000000018de47224 mach_msg_trap + 8
1 libsystem_kernel.dylib 0x000000018de4709c mach_msg + 72
2 CoreFoundation 0x000000018ee18e90 __CFRunLoopServiceMachPort + 192
3 CoreFoundation 0x000000018ee16ae4 __CFRunLoopRun + 1060
4 CoreFoundation 0x000000018ed46da4 CFRunLoopRunSpecific + 424
5 CFNetwork 0x000000018f553df4 +[NSURLConnection(Loader) _resourceLoadLoop:] + 404
6 Foundation 0x000000018f95f318 __NSThread__start__ + 996
7 libsystem_pthread.dylib 0x000000018df2d68c _pthread_body + 240
8 libsystem_pthread.dylib 0x000000018df2d59c _pthread_body + 0
9 libsystem_pthread.dylib 0x000000018df2acb4 thread_start + 4
Thread 6 name: GAIThread
Thread 6:
0 libsystem_kernel.dylib 0x000000018de47224 mach_msg_trap + 8
1 libsystem_kernel.dylib 0x000000018de4709c mach_msg + 72
2 CoreFoundation 0x000000018ee18e90 __CFRunLoopServiceMachPort + 192
3 CoreFoundation 0x000000018ee16ae4 __CFRunLoopRun + 1060
4 CoreFoundation 0x000000018ed46da4 CFRunLoopRunSpecific + 424
5 Foundation 0x000000018f861db4 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 304
6 Foundation 0x000000018f8b6704 -[NSRunLoop(NSRunLoop) run] + 88
7 myApp 0x0000000100120398 0x1000c0000 + 394136
8 Foundation 0x000000018f95f318 __NSThread__start__ + 996
9 libsystem_pthread.dylib 0x000000018df2d68c _pthread_body + 240
10 libsystem_pthread.dylib 0x000000018df2d59c _pthread_body + 0
11 libsystem_pthread.dylib 0x000000018df2acb4 thread_start + 4
Thread 7:
0 libsystem_pthread.dylib 0x000000018df2aca8 start_wqthread + 0
Thread 8:
0 libsystem_pthread.dylib 0x000000018df2aca8 start_wqthread + 0
但在重大案例中崩溃报告如下:
Incident Identifier: D5D6C3C6-7EB7-4E2C-901C-7203943BD722
CrashReporter Key: c04f591f9e0cc9d1991ce10e33ebcabd56affbe6
Hardware Model: iPhone8,4
Process: myApp [17444]
Path: /private/var/containers/Bundle/Application/93AB2A15-0C65-47D5-BE24-FB298DC396E0/myApp.app/myApp
Identifier: com.example.myApp
Version: 2 (1.0.2)
Code Type: ARM-64 (Native)
Role: Foreground
Parent Process: launchd [1]
Coalition: com.example.myApp [16449]
Date/Time: 2017-09-19 12:41:45.3051 +0300
Launch Time: 2017-09-19 12:24:22.7861 +0300
OS Version: iPhone OS 10.3.3 (14G60)
Report Version: 104
Exception Type: EXC_CRASH (SIGKILL)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Termination Reason: Namespace <0xF>, Code 0x8badf00d
Triggered by Thread: 0
Filtered syslog:
None found
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 libsystem_kernel.dylib 0x000000018de47224 mach_msg_trap + 8
1 libsystem_kernel.dylib 0x000000018de4709c mach_msg + 72
2 CoreFoundation 0x000000018ee18e90 __CFRunLoopServiceMachPort + 192
3 CoreFoundation 0x000000018ee16ae4 __CFRunLoopRun + 1060
4 CoreFoundation 0x000000018ed46da4 CFRunLoopRunSpecific + 424
5 GraphicsServices 0x00000001907b1074 GSEventRunModal + 100
6 UIKit 0x0000000195001c9c UIApplicationMain + 208
7 myApp 0x0000000100031bb8 0x10000c000 + 154552
8 libdyld.dylib 0x000000018dd5559c start + 4
Thread 1 name: com.apple.uikit.eventfetch-thread
Thread 1:
0 libsystem_kernel.dylib 0x000000018de47224 mach_msg_trap + 8
1 libsystem_kernel.dylib 0x000000018de4709c mach_msg + 72
2 CoreFoundation 0x000000018ee18e90 __CFRunLoopServiceMachPort + 192
3 CoreFoundation 0x000000018ee16ae4 __CFRunLoopRun + 1060
4 CoreFoundation 0x000000018ed46da4 CFRunLoopRunSpecific + 424
5 Foundation 0x000000018f861db4 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 304
6 Foundation 0x000000018f882b84 -[NSRunLoop(NSRunLoop) runUntilDate:] + 96
7 UIKit 0x000000019598b830 -[UIEventFetcher threadMain] + 136
8 Foundation 0x000000018f95f318 __NSThread__start__ + 996
9 libsystem_pthread.dylib 0x000000018df2d68c _pthread_body + 240
10 libsystem_pthread.dylib 0x000000018df2d59c _pthread_body + 0
11 libsystem_pthread.dylib 0x000000018df2acb4 thread_start + 4
Thread 2 name: com.twitter.crashlytics.ios.MachExceptionServer
Thread 2:
0 libsystem_kernel.dylib 0x000000018de47224 mach_msg_trap + 8
1 libsystem_kernel.dylib 0x000000018de4709c mach_msg + 72
2 myApp 0x000000010008d6a0 0x10000c000 + 530080
3 libsystem_pthread.dylib 0x000000018df2d68c _pthread_body + 240
4 libsystem_pthread.dylib 0x000000018df2d59c _pthread_body + 0
5 libsystem_pthread.dylib 0x000000018df2acb4 thread_start + 4
Thread 3 name: com.apple.NSURLConnectionLoader
Thread 3:
0 libsystem_kernel.dylib 0x000000018de47224 mach_msg_trap + 8
1 libsystem_kernel.dylib 0x000000018de4709c mach_msg + 72
2 CoreFoundation 0x000000018ee18e90 __CFRunLoopServiceMachPort + 192
3 CoreFoundation 0x000000018ee16ae4 __CFRunLoopRun + 1060
4 CoreFoundation 0x000000018ed46da4 CFRunLoopRunSpecific + 424
5 CFNetwork 0x000000018f553df4 +[NSURLConnection(Loader) _resourceLoadLoop:] + 404
6 Foundation 0x000000018f95f318 __NSThread__start__ + 996
7 libsystem_pthread.dylib 0x000000018df2d68c _pthread_body + 240
8 libsystem_pthread.dylib 0x000000018df2d59c _pthread_body + 0
9 libsystem_pthread.dylib 0x000000018df2acb4 thread_start + 4
Thread 4 name: GAIThread
Thread 4:
0 libsystem_kernel.dylib 0x000000018de47224 mach_msg_trap + 8
1 libsystem_kernel.dylib 0x000000018de4709c mach_msg + 72
2 CoreFoundation 0x000000018ee18e90 __CFRunLoopServiceMachPort + 192
3 CoreFoundation 0x000000018ee16ae4 __CFRunLoopRun + 1060
4 CoreFoundation 0x000000018ed46da4 CFRunLoopRunSpecific + 424
5 Foundation 0x000000018f861db4 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 304
6 Foundation 0x000000018f8b6704 -[NSRunLoop(NSRunLoop) run] + 88
7 myApp 0x000000010006d9dc 0x10000c000 + 399836
8 Foundation 0x000000018f95f318 __NSThread__start__ + 996
9 libsystem_pthread.dylib 0x000000018df2d68c _pthread_body + 240
10 libsystem_pthread.dylib 0x000000018df2d59c _pthread_body + 0
11 libsystem_pthread.dylib 0x000000018df2acb4 thread_start + 4
Thread 5:
0 libsystem_pthread.dylib 0x000000018df2aca8 start_wqthread + 0
Thread 6:
0 libsystem_pthread.dylib 0x000000018df2aca8 start_wqthread + 0
Thread 7:
0 libsystem_pthread.dylib 0x000000018df2aca8 start_wqthread + 0
Thread 8:
0 libsystem_pthread.dylib 0x000000018df2aca8 start_wqthread + 0
Thread 9:
0 libsystem_pthread.dylib 0x000000018df2aca8 start_wqthread + 0
也许有人有类似的问题,并有一些建议?
答案 0 :(得分:4)
有一件事很奇怪,你说这种情况发生在后台,但是当应用程序处于前台时,就系统而言,崩溃正在发生:
Role: Foreground
所以,那令人困惑。
只是疯狂猜测,我会查看内存损坏/使用已发布对象(特别是如果这是非ARC代码),异步代码,如网络请求或计时器回调跳转到已发布的代码,执行UI等操作在一个不是主线程的线程上(如果你可以在Xcode 9下运行,运行时线程诊断将对此有所帮助。)即使使用Xc8,查看你的项目方案和内存调试Run配置下可用的选项。那些可以帮助。
查看设备上正在运行的系统日志。您不需要使用Xcode进行调试即可。只需转到“设备”窗口,系统控制台就在底部附近。您可能需要透露它。该系统日志可能提供线索。
如果您正在使用手动保留/释放,请仔细检查在崩溃时间范围内遇到的任何代码。请记住,这些类型的崩溃发生在问题发生后,因此您看到崩溃可能与实际问题的位置无关,并且崩溃位置可能会波动,尤其是在不同的设备上。
可能会对Xcode 8之前的代码和当前代码进行区分,以便仔细检查您所做的任何更改。我的猜测是你在更新Xcode 8的代码时引入了内存问题。
<强>更新强>
对不起,刚刚注意到终止原因。
这可能有所帮助:
异常代码0x8badf00d表示应用程序已经存在 iOS终止,因为发生了监视程序超时。应用程序 花了很长时间才启动,终止或响应系统事件。一 这种情况的常见原因是在主要上进行同步联网 线。线程0上的操作是什么:需要移动到a 后台线程,或处理不同,以便它不会阻止 主线。
确保当你进入后台时,你没有做任何需要很长时间的事情,如果需要的话可以使用后台任务,并且不要做任何类似OpenGL调用的事情。背景。由于崩溃报告说你在前景中,我想知道你是否花了太长时间进入后台,而Springboard正在杀死你的应用程序。系统日志将确认。