当我在Xcode&中运行我的iOS应用程序时在我的设备上测试它(在提交之前)它没有返回任何错误,它完美无缺。但是当我在应用程序商店更新后测试应用程序时,每次我在设备上打开应用程序时都会崩溃。我在崩溃日志中收到以下错误:
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Triggered by Thread: 0
Last Exception Backtrace:
0 CoreFoundation 0x2f9ecf06 __exceptionPreprocess + 126
1 libobjc.A.dylib 0x3a183ce2 objc_exception_throw + 34
2 CoreData 0x2f72a694 -[NSPersistentStoreCoordinator initWithManagedObjectModel:] + 392
3 TapNotes 0x00015d3c -[AppDelegate persistentStoreCoordinator] (AppDelegate.m:104)
4 TapNotes 0x00015b48 -[AppDelegate managedObjectContext] (AppDelegate.m:73)
5 TapNotes 0x00016904 -[DeviceViewController managedObjectContext] (HomeViewController.m:22)
6 TapNotes 0x00016b04 -[DeviceViewController viewDidAppear:] (HomeViewController.m:51)
7 UIKit 0x32236d1e -[UIViewController _setViewAppearState:isAnimating:] + 434
8 UIKit 0x322e6052 -[UINavigationController viewDidAppear:] + 178
9 UIKit 0x32236d1e -[UIViewController _setViewAppearState:isAnimating:] + 434
10 UIKit 0x3229be7a -[UIViewController _executeAfterAppearanceBlock] + 50
11 UIKit 0x3229be04 _applyBlockToCFArrayCopiedToStack + 312
12 UIKit 0x32214b6e _afterCACommitHandler + 454
13 CoreFoundation 0x2f9b8034 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 16
14 CoreFoundation 0x2f9b59c2 __CFRunLoopDoObservers + 282
15 CoreFoundation 0x2f9b5d0e __CFRunLoopRun + 734
16 CoreFoundation 0x2f920764 CFRunLoopRunSpecific + 520
17 CoreFoundation 0x2f920546 CFRunLoopRunInMode + 102
18 GraphicsServices 0x3488d6ce GSEventRunModal + 134
19 UIKit 0x3227f88c UIApplicationMain + 1132
20 TapNotes 0x00016886 main (main.m:16)
21 libdyld.dylib 0x3a681ab2 tlv_initializer + 2
Thread 0 Crashed:
0 libsystem_kernel.dylib 0x3a7381f0 __pthread_kill + 8
1 libsystem_pthread.dylib 0x3a7a07b2 pthread_kill + 54
2 libsystem_c.dylib 0x3a6e8ff4 abort + 72
3 libc++abi.dylib 0x39b3798a abort_message + 70
4 libc++abi.dylib 0x39b506e2 default_terminate_handler() + 250
5 libobjc.A.dylib 0x3a183f7a _objc_terminate() + 190
6 libc++abi.dylib 0x39b4e1b0 std::__terminate(void (*)()) + 76
7 libc++abi.dylib 0x39b4dd12 __cxa_rethrow + 98
8 libobjc.A.dylib 0x3a183e2a objc_exception_rethrow + 38
9 CoreFoundation 0x2f9207da CFRunLoopRunSpecific + 638
10 CoreFoundation 0x2f920546 CFRunLoopRunInMode + 102
11 GraphicsServices 0x3488d6ce GSEventRunModal + 134
12 UIKit 0x3227f88c UIApplicationMain + 1132
13 TapNotes 0x00016886 main (main.m:16)
14 libdyld.dylib 0x3a681ab4 start + 0
Thread 1:
0 libsystem_kernel.dylib 0x3a725804 kevent64 + 24
1 libdispatch.dylib 0x3a674050 _dispatch_mgr_invoke + 228
2 libdispatch.dylib 0x3a66e2de _dispatch_mgr_thread + 34
Thread 2:
0 libsystem_kernel.dylib 0x3a738c70 __workq_kernreturn + 8
1 libsystem_pthread.dylib 0x3a79dc1e _pthread_wqthread + 306
2 libsystem_pthread.dylib 0x3a79dad8 start_wqthread + 4
Thread 3:
0 libsystem_kernel.dylib 0x3a738c70 __workq_kernreturn + 8
1 libsystem_pthread.dylib 0x3a79dc1e _pthread_wqthread + 306
2 libsystem_pthread.dylib 0x3a79dad8 start_wqthread + 4
Thread 0 crashed with ARM Thread State (32-bit):
r0: 0x00000000 r1: 0x00000000 r2: 0x00000000 r3: 0x00002060
r4: 0x00000006 r5: 0x3c69418c r6: 0x00000000 r7: 0x27df2594
r8: 0x17e8d090 r9: 0x00000001 r10: 0x0000000c r11: 0x00000002
ip: 0x00000148 sp: 0x27df2588 lr: 0x3a7a07b7 pc: 0x3a7381f0
cpsr: 0x00000010
我尝试在多个设备上打开&同样的事情发生了。我该怎么办才能解决这个问题?
答案 0 :(得分:0)
从日志的外观来看,您的代码中可能有默认的Core Data
堆栈,并且在更新中修改了您的对象模型。然后,您在版本更新时遇到迁移问题。在核心数据模板中,可以很好地调用
abort()
- (NSPersistentStoreCoordinator *)persistentStoreCoordinator
方法。关于它不应该出现在生产代码中以及有关迁移的一些想法,这是一个很好的长篇评论。我查看了该方法并验证abort()
已消失。