AppStore更新后神秘的应用程序崩溃

Posted

技术标签:

【中文标题】AppStore更新后神秘的应用程序崩溃【英文标题】:Mysterious app crash after AppStore update 【发布时间】:2013-08-15 09:00:18 【问题描述】:

我们已向 AppStore 发布了一款应用,但在更新后,它在尝试登录后崩溃。我们一直严重依赖其中的CoreData 数据库,我们认为这是崩溃的原因。尽管如此,我无法从设备中获得任何有价值的信息,只是一个包含一些线程信息的崩溃日志。下面是它的外观:

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0xd0000008
Crashed Thread:  0

Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   libobjc.A.dylib                 0x32b3e5b0 objc_msgSend + 16
1   Foundation                      0x337cbd18 -[NSError dealloc] + 56
2   libobjc.A.dylib                 0x32b40484 (anonymous namespace)::AutoreleasePoolPage::pop(void*) + 164
3   CoreFoundation                  0x31bc843c _CFAutoreleasePoolPop + 12
4   Foundation                      0x337ccf76 -[NSAutoreleasePool drain] + 118
5   CoreData                        0x32f6d4ae -[NSManagedObjectContext save:] + 1206
6   ourapp                      0x0012fbf8 0xba000 + 482296
7   CoreData                        0x32f70bbe developerSubmittedBlockToNSManagedObjectContextPerform + 86
8   CoreData                        0x32f70cee -[NSManagedObjectContext performBlockAndWait:] + 90
9   ourapp                      0x0012fb4c 0xba000 + 482124
10  ourapp                      0x000c4e08 0xba000 + 44552
11  ourapp                      0x000cced4 0xba000 + 77524
12  ourapp                      0x000db50a 0xba000 + 136458
13  ourapp                      0x0014c41a 0xba000 + 599066
14  Foundation                      0x33893ef2 __65-[NSURLConnectionInternal _withConnectionAndDelegate:onlyActive:]_block_invoke_0 + 14
15  Foundation                      0x337d39ec -[NSURLConnectionInternal _withConnectionAndDelegate:onlyActive:] + 196
16  Foundation                      0x337d3908 -[NSURLConnectionInternal _withActiveConnectionAndDelegate:] + 56
17  CFNetwork                       0x38da65dc ___delegate_didFinishLoading_block_invoke_0 + 24
18  CFNetwork                       0x38da5cc8 ___withDelegateAsync_block_invoke_0 + 52
19  CFNetwork                       0x38dce130 ___performAsync_block_invoke_068 + 16
20  CoreFoundation                  0x31bcb74a CFArrayApplyFunction + 174
21  CFNetwork                       0x38dce58e RunloopBlockContext::perform() + 70
22  CFNetwork                       0x38d3215a MultiplexerSource::perform() + 186
23  CoreFoundation                  0x31c5a680 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 12
24  CoreFoundation                  0x31c59f7a __CFRunLoopDoSources0 + 358
25  CoreFoundation                  0x31c58cb2 __CFRunLoopRun + 642
26  CoreFoundation                  0x31bcbeb8 CFRunLoopRunSpecific + 352
27  CoreFoundation                  0x31bcbd44 CFRunLoopRunInMode + 100
28  GraphicsServices                0x399c92e6 GSEventRunModal + 70
29  UIKit                           0x394872f4 UIApplicationMain + 1116
30  ourapp                      0x000be76a 0xba000 + 18282
31  ourapp                      0x000bb684 0xba000 + 5764

我还有其他机会从这种情况中获得更多信息吗?如何将其插入 XCode 并可能跟踪崩溃,或者它只能在事后完成?

最重要的是,您认为导致崩溃的原因是什么?

【问题讨论】:

您是否在设备中进行了新更改的调试? @Maulik 这是应用程序的最新版本,它会导致崩溃 从静态分析器开始也启用NSZombie。 @Maulik 直接从 AppStore 调试应用程序时应该使用哪种工具?我暂时无法安装 XCode 版本。 ***.com/questions/1460892/… 【参考方案1】:

我们的问题与 Core Data 轻量级迁移有关。我们使用“Magical Record”库来处理我们的核心数据获取和更新它解决了这个问题。

另外,this blog post 非常有用。

【讨论】:

以上是关于AppStore更新后神秘的应用程序崩溃的主要内容,如果未能解决你的问题,请参考以下文章

应用程序更新后读取崩溃日志

iOS App(使用核心数据)更新后崩溃,但只有 App Store 版本

从 AppStore 或 TestFlight 启动时应用程序崩溃,但在其他方面工作正常

即使安装后iOS应用程序也会崩溃,但新用户不会

CoreAnalytics::Client / FrameworkConfiguration::init 内部的神秘崩溃

应用程序关闭时没有崩溃警报