我正在使用TestFlight SDK,收到了几个完全相同的崩溃报告。然而,我很难理解这些报告,以及导致崩溃的根本原因是什么?
Exception
SIGSEGV
2 libsystem_c.dylib 0x32862e92 _sigtramp + 42
3 Foundation 0x33750d1c -[NSError dealloc] + 60...
Exception reason
SIGSEGV
Stacktrace
0 MyAppName 0x0013faba testflight_backtrace + 382
1 MyAppName 0x00140708 TFSignalHandler + 264
2 libsystem_c.dylib 0x32862e92 _sigtramp + 42
3 Foundation 0x33750d1c -[NSError dealloc] + 60
4 libobjc.A.dylib 0x39230488 _ZN12_GLOBAL__N_119AutoreleasePoolPage3popEPv + 168
5 CoreFoundation 0x31de9440 _CFAutoreleasePoolPop + 16
6 Foundation 0x33751f7a -[NSAutoreleasePool drain] + 122
7 CoreData 0x35e0a4b2 -[NSManagedObjectContext save:] + 1210
8 MyAppName 0x000b7168 MR_swapMethodsFromClass + 18076
9 CoreData 0x35e0dbc0 developerSubmittedBlockToNSManagedObjectContextPerform + 88
10 libdispatch.dylib 0x335974b6 _dispatch_client_callout + 22
11 libdispatch.dylib 0x33598dca _dispatch_main_queue_callback_4CF$VARIANT$up + 226
12 CoreFoundation 0x31e79f3a __CFRunLoopRun + 1290
13 CoreFoundation 0x31decebc CFRunLoopRunSpecific + 356
14 CoreFoundation 0x31decd48 CFRunLoopRunInMode + 104
15 GraphicsServices 0x36e092ea GSEventRunModal + 74
16 UIKit 0x320db2f8 UIApplicationMain + 1120
17 MyAppName 0x00099122 main (main.m:17)
18 MyAppName 0x000990d7 start + 39
额外信息:
- 用户反映此崩溃在应用程序启动后1-2秒发生
- 该应用程序使用Core Data和MagicalRecord(其中包含MR_swapMethodsFromClass方法)
- 我无法在任何测试设备上重现此问题,当从Xcode运行时(iPhone 3GS,iPhone 4或iPhone 5)运行各种iOS版本(iOS 5.1、6.0、6.1)
编辑
仍在解决此问题......我已经能够重新创建它(但没有附加调试器)。
最奇怪的部分是 - 如果用户有旧版本的应用程序并安装更新(通过Test Flight分发),他们会收到此错误。
然而,如果他们首先删除旧应用并安装更新,则不会发生错误。
MyAppName
- 比如在第8行的MR_swapMethodsFromClass
中?(我还将 .dSYM 文件上传到 TestFlight,据说可以让它自动符号化,而无需开发人员进行操作?)我是不是搞混了什么? - JRG-DeveloperNSError
对象的问题。由于所有问题都始于 MagicalRecords 代码,您可能需要检查他们的支持网站。也许有一个更新版本可以使用或者这是一个已知问题。 - rmaddyNSPersistentStore
和新的NSPersistentStore
之间不匹配引起的。不幸的是,由于MagicalRecord
的initialize
方法,在DEBUG
版本上设置shouldDeleteStoreOnModelMismatch
为YES
,在生产版本上设置为NO
,所以很难捕获到这个问题。如果你想在生产版本中在模型不匹配时删除模型,你必须在application:didFinishLaunchingWithOptions:
方法的开头执行[MagicalRecord setShouldDeleteStoreOnModelMismatch:YES]
。 - JRG-Developer