首次启动后应用程序崩溃

时间:2014-03-17 11:59:00

标签: ios uitableview core-data

我已经在app商店有这个应用程序。我发布了一些更新版本。这个应用程序使用CoreData进行数据持久化。我在应用程序商店发布它之前测试了它的新版本,它按需要运行。但是在提交应用程序商店并从那里更新后,应用程序在每次启动后都会崩溃。我有崩溃报告,但这对我没有任何意义。我在CoreData中没有改变任何东西。 启动后,这个应用程序显示一个UITableView,这个tableView从CoreData获取数据。

这是崩溃报告。

Incident Identifier: 7A9713FF-40CB-45E0-961F-F4D1B003F2B5
CrashReporter Key:   891c38a57639ab8e2bcc3012687292ce9aa818f5
Hardware Model:      iPhone6,2
Process:             APPName [7461]
Path:                /var/mobile/Applications/A9028B70-0878-40FA-944B-584B15E49B69/APPName.app/APPName
Identifier:          co.identifier.app
Version:             2.5 (2.5)
Code Type:           ARM (Native)
Parent Process:      launchd [1]

Date/Time:           2014-03-13 09:39:17.309 +0000
OS Version:          iOS 7.0.6 (11B651)
Report Version:      104

Exception Type:  00000020
Exception Codes: 0x000000008badf00d
Highlighted Thread:  0

Application Specific Information:
co.identifier.app failed to launch in time

Elapsed total CPU time (seconds): 1.660 (user 1.660, system 0.000), 4% CPU 
Elapsed application CPU time (seconds): 0.304, 1% CPU

Thread 0:
0   libsystem_kernel.dylib          0x3a161fa8 __psynch_mutexwait + 24
1   libsystem_pthread.dylib         0x3a1c6f4d _pthread_mutex_lock + 305
2   CoreData                        0x2f595a91 -[_PFLock lock] + 21
3   CoreData                        0x2f5a6b35 -[NSPersistentStoreCoordinator executeRequest:withContext:error:] + 777
4   CoreData                        0x2f5a5777 -[NSManagedObjectContext executeFetchRequest:error:] + 611
5   APPName                         0x000ecc11 +[DataManager dataEntryEntity:] (DataManager.m:385)
6   APPName                         0x000ebca9 +[DataManager dataForDateKey:] (DataManager.m:126)
7   APPName                         0x000cff9d -[CalendarCell setDateKey:] (CalendarCell.m:820)
8   APPName                         0x000bd969 -[CalendarViewController tableView:cellForRowAtIndexPath:] (CalendarViewController.m:832)
9   UIKit                           0x32108311 -[UITableView _createPreparedCellForGlobalRow:withIndexPath:] + 405
10  UIKit                           0x320b06c9 -[UITableView _updateVisibleCellsNow:] + 1797
11  UIKit                           0x320afeed -[UITableView layoutSubviews] + 181
12  UIKit                           0x31fd634f -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 343
13  QuartzCore                      0x31c5c93f -[CALayer layoutSublayers] + 139
14  QuartzCore                      0x31c58163 CA::Layer::layout_if_needed(CA::Transaction*) + 347
15  QuartzCore                      0x31c57ff5 CA::Layer::layout_and_display_if_needed(CA::Transaction*) + 13
16  QuartzCore                      0x31c57a09 CA::Context::commit_transaction(CA::Transaction*) + 225
17  QuartzCore                      0x31c5781b CA::Transaction::commit() + 311
18  UIKit                           0x32055a37 -[UIApplication _reportAppLaunchFinished] + 39
19  UIKit                           0x32040edb -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 1643
20  UIKit                           0x31fdba03 -[UIApplication handleEvent:withNewEvent:] + 3139
21  UIKit                           0x31fdacf9 -[UIApplication sendEvent:] + 69
22  UIKit                           0x3204031d _UIApplicationHandleEvent + 661
23  GraphicsServices                0x344ba76b _PurpleEventCallback + 607
24  GraphicsServices                0x344ba353 PurpleEventCallback + 31
25  CoreFoundation                  0x2f81c775 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 33
26  CoreFoundation                  0x2f81c70f __CFRunLoopDoSource1 + 343
27  CoreFoundation                  0x2f81aedb __CFRunLoopRun + 1403
28  CoreFoundation                  0x2f78546d CFRunLoopRunSpecific + 521
29  CoreFoundation                  0x2f78524f CFRunLoopRunInMode + 103
30  UIKit                           0x3203f5bf -[UIApplication _run] + 759
31  UIKit                           0x3203a841 UIApplicationMain + 1133
32  APPName                         0x000b6ba7 main (main.m:11)
33  libdyld.dylib                   0x3a0abab5 start + 1

这次崩溃是在每个更新应用程序的设备上产生的,这不会在模拟器测试或通过testFlight发布测试构建中再现。

2 个答案:

答案 0 :(得分:1)

正如菲利普在评论中所说,造成这次事故的原因是监管机构 如果您的应用程序长时间停留在方法-applicationDidFinishLauchingWithOptions:中,系统会将其杀死 原因是你可能在这个方法的主线程上做了一个昂贵的时间任务,可能是迁移,复制或删除大量文件。
您从未体验过测试,因为可能您使用了少量数据,或者因为在调试模式下看门狗没有活动(不确定)。
不幸的是我认为你应该尽快发布另一个版本来修复它,解决方案可能是在后台线程上启动那些长时间运行的任务。 为了防止这些问题,请务必在发布之前尝试使用ad-hoc发行版更新旧版应用程序。

答案 1 :(得分:0)

来自http://www.raywenderlich.com/23704/demystifying-ios-application-crash-logs

以下是一些更常见的异常代码: 0x8badf00d:读作“吃不好的食物”! (如果您眯着眼睛并用字母字符替换数字。:p)此代码表示iOS已终止应用程序,因为发生了监视程序超时。基本上,应用程序花了太长时间才能启动,终止或响应系统事件。

崩溃是因为漫长的等待,导致它的原因是日志中列出的321个任务项中的1个。

我对您在日志中发送事件/处理事件项目感到非常好奇。在启动rootViewController之前,你有没有机会等待什么? ......它可能是核心数据,但如果出现了一些非常错误,我会发现另一个错误发生而不是等待。