2014-09-18 88 views
12

我得到在iOS 8大量的崩溃报告与该堆栈跟踪:神秘坠毁在iOS 8

Date/Time:  2014-09-17T20:26:15Z 
OS Version:  iPhone OS 8.0 (12A365) 
Report Version: 104 

Exception Type: SIGSEGV 
Exception Codes: SEGV_ACCERR at 0x1 
Crashed Thread: 0 

Thread 0 Crashed: 
0 libGPUSupportMercury.dylib   0x2a4f88fe gldGetBufferAllocationIdentifiers + 194 
1 libGPUSupportMercury.dylib   0x2a4f93cb gpusSubmitDataBuffers + 108 
2 libGPUSupportMercury.dylib   0x2a4f9249 gldCreateContext + 206 
3 GLEngine        0x2613c93b gliCreateContextWithShared + 600 
4 OpenGLES        0x26218ab3 glGetFramebufferParameteriAPPLE + 776 
5 CoreImage       0x23e88b8b 0x23dea000 + 65
6 libdispatch.dylib     0x314558b7 0x31454000 + 6327 
7 libdispatch.dylib     0x314564fb dispatch_once_f + 60 
8 CoreImage       0x23e88afb 0x23dea000 + 649979 
9 CoreImage       0x23e06c79 0x23dea000 + 117881 
10 CoreUI        0x29478837 CUIEqualRenditionKeysIgnoringAttribute + 71800 
11 libsystem_pthread.dylib    0x315b9dcf sched_get_priority_min + 64 
12 libsystem_platform.dylib    0x315b2867 _os_once + 40 
13 libsystem_pthread.dylib    0x315b7f8b pthread_once + 48 
14 CoreUI        0x294787d9 CUIEqualRenditionKeysIgnoringAttribute + 71706 
15 CoreUI        0x2947faf7 CUIEqualRenditionKeysIgnoringAttribute + 101176 
16 UIKit        0x26f649db _UIGraphicsEndLetterpressWithStyle + 20792 
17 UIKit        0x26cf2875 UIGraphicsEndImageContext + 7838 
18 UIKit        0x26cf1fb5 UIGraphicsEndImageContext + 5598 
19 UIKit        0x26fe3db9 _UINavigationButtonUpdateAccessibilityBackgroundsForBlendMode + 287838 
20 UIKit        0x26cf19c7 UIGraphicsEndImageContext + 4080 
21 UIKit        0x26d8c1b1 UICeilToViewScale + 55778 
22 UIKit        0x26d70143 _UIBarHairlineShadowColorForBarStyle + 10164 
23 UIKit        0x26ce2b37 0x26cd6000 + 52023 
24 QuartzCore       0x2670accd CABackingStoreGetTypeID + 894 
25 QuartzCore       0x267066b5 CARenderServerGetServerPort + 5366 
26 UIKit        0x26cf5183 UIGraphicsGetImageFromCurrentImageContext + 2068 
27 UIKit        0x26cf1fb5 UIGraphicsEndImageContext + 5598 
28 UIKit        0x26d6efc5 _UIBarHairlineShadowColorForBarStyle + 5686 
29 UIKit        0x26d6ec63 _UIBarHairlineShadowColorForBarStyle + 4820 
30 UIKit        0x26d6e3cd _UIBarHairlineShadowColorForBarStyle + 2622 
31 UIKit        0x26fd5a6f _UINavigationButtonUpdateAccessibilityBackgroundsForBlendMode + 229652 
32 UIKit        0x26d6b837 _UIAccessibilityReduceMotion + 16948 
33 UIKit        0x26ce53d9 _UIApplicationLinkedOnOrAfter + 2526 
34 UIKit        0x26ce535d _UIApplicationLinkedOnOrAfter + 2402 
35 UIKit        0x26d6b24d _UIAccessibilityReduceMotion + 15434 
36 UIKit        0x26fd7ef9 _UINavigationButtonUpdateAccessibilityBackgroundsForBlendMode + 239006 
37 UIKit        0x26d6b0b3 _UIAccessibilityReduceMotion + 15024 
38 UIKit        0x26dc516f UIRectIntegralWithScale + 1040 
39 Pogoplug        0x001bccc9 __41-[InitialSlidingViewController didSignIn]_block_invoke (InitialSlidingViewController.m:216) 
40 libdispatch.dylib     0x314558cb 0x31454000 + 6347 
41 libdispatch.dylib     0x314558b7 0x31454000 + 6327 
42 libdispatch.dylib     0x314590bf _dispatch_main_queue_callback_4CF + 720 
43 CoreFoundation      0x2380dbe9 CFRunLoopTimerSetTolerance + 3370 
44 CoreFoundation      0x2380c2e9 _CFRunLoopGet2b + 2926 
45 CoreFoundation      0x2375a621 CFRunLoopRunSpecific + 474 
46 CoreFoundation      0x2375a433 CFRunLoopRunInMode + 104 
47 GraphicsServices      0x2ab080a9 GSEventRunModal + 134 
48 UIKit        0x26d44809 UIApplicationMain + 1438 
49 Pogoplug        0x0012c4bf main (main.m:11) 
50 libdyld.dylib      0x31475aaf _tlv_atexit + 8 

什么可以是错误的任何线索将非常感激。 这里行216

MenuViewController *menuVC = [[MenuViewController alloc] initWithNibName:nil bundle:nil]; 
NavControllerPortrait *navController = [[NavControllerPortrait alloc] initWithRootViewController:menuVC]; 

获取它主要是在iPhone 5和iPad 3代(不知道其限于这些设备)。

更多信息 出现这种情况有点不太经常通过这个代码也有类似的堆栈跟踪和导致另一个崩溃:

CELoginViewController *loginVC = [[CELoginViewController alloc] initWithNibName:nil bundle:nil]; 
NavControllerPortrait *nav = [[NavControllerPortrait alloc] initWithRootViewController:loginVC]; 

所以我强烈怀疑或我的自定义的UINavigationController或苹果公司对它进行更改。鉴于我不是唯一一个遇到这种崩溃的人 - 我倾向于责怪苹果:-)

谢谢。

+0

你还没有给我们太多的继续。我没有看到代码有任何问题。它在运行iOS 8的模拟器中工作吗?如果确实如此,那么您唯一的希望就是找到运行iOS 8的iPhone 5并对其进行测试。 – 2014-09-18 19:17:20

+0

在iOS 8的iPhone 5s/iPad Air上试用过它,它也能正常工作,模拟器也一样。 – 2014-09-19 16:10:56

+0

@CherpakEvgeny不幸的是,改变着色的图像并没有解决这个问题,你是否能够修复你的问题? – kbtombul 2014-10-14 21:40:13

回答

23

我没有足够的评论和要求细节的声望,但是我遇到了同样的问题,主要是在iPhone 5上,但也有5c,4s,iPad 3和iPod 5G,我相信我是什么即使它没有回答这个问题,也会有所帮助。

首先,这是当您尝试使用OpenGL绘制某些东西或在背景中调整大小或移动MKMapView 时发生的崩溃。它在崩溃日志中可能并不明显,但我得到的每一个崩溃报告都是应用程序在后台启动的时候。它看起来对你来说是一样的,考虑到UIViewController被称为InitialSlidingViewController。在我的情况下,大部分时间都是“重要位置更新”,但在您的情况下,它可能是“后台抓取”或“访问”更新或“无声远程通知”。

我在应用程序中注意到的一件事是,它在崩溃时设置了导航栏,更具体地说,试图渲染图像,我在导航栏中着色了图像。对你来说,这是另一回事,但需要OpenGL,也许像视差这样的运动效果,我在栈跟踪中看到_UIAccessibilityReduceMotion?

无论你是什么,或者我在做什么,事实上它在某些设备上发生的事情,从来没有在某些设备上发生,这意味着它最有可能是一个iOS错误。我也在我的堆栈跟踪中看到“CI :: can_use_gpu()”,它崩溃是因为它在检查GPU是否可以使用GPU时使用了GPU。

那么我们如何防止它崩溃呢?

您可以尝试禁用正在使用的功能,对于我来说,我会用正确颜色的图像替换图像,而不是使用色调颜色。
或者你可以尝试加载另一个视图控制器,也许只是一个空视图控制器,当应用程序在后台启动,然后当它前景交换视图控制器与你现在使用的视图控制器。

+2

我其实已经怀疑过 - 出于同样的原因,并且有一句话“伟大的思想认为像” - 所以我想这是这种情况 – 2014-09-23 13:00:20

+0

我不怀疑这是一个iOS bug:https://developer.apple.com/library/ios/qa/qa1766/_index.html – 2014-09-24 10:00:14

+3

感谢@Sjoerd提及的文档,我应该在我的答案中包含该链接,我会相应地更新。问题在于iOS在内部使用OpenGL进行一些基本任务,并导致此次崩溃。我有一个视图控制器,它有一个带有着色图像的UIBarButtonItem。我在viewDidLoad中设置了这个按钮,并且我在applicationDidFinishLaunching中使这个视图控制器rootViewController。我认为这是一个非常基本的设置,有这种问题。 – kbtombul 2014-09-29 04:41:12

1

我在其中一个选项卡上包含mapKit视图的应用程序上看到了这一点。据报道,该错误与在地图上执行的更新绑定在应用程序背景中时发生,并且我意识到唯一可能得到更新的是用户位置“闪烁的”蓝点。所以我添加了代码来设置

self.mapview.showsUserLocation = NO; 

每当应用程序获得后台,并将其设置为YES时,它变为活动。这似乎已经停止了我的alpha测试中的错误。一旦我从beta测试中获得结果,我会更新这个。

+1

仍然看到用户的这次崩溃,所以再次挖掘它。堆栈跟踪包括对“VKPolygonTileSource TileForData:downloadKey:sourceKey”方法的调用,所以我想知道在应用程序背景下正在下载或更新地图切片。一种可能的情况 - 连接性差,连接速度慢,地图开始加载,用户背景通过主页按钮,地图图块完成加载,尝试更新,崩溃。 – 2015-04-06 17:25:18

+0

仍然看到这次崩溃,但频率更低(每周一次)。这是一款关键业务的企业应用程序,所以即使这也是有问题的。 :-( – 2015-05-28 14:56:03

2

有关于这个非常行为,在苹果员工承认这是一个错误的苹果开发者论坛的讨论:

https://devforums.apple.com/thread/246744?start=0&tstart=0

的iOS 8.3发布短短数天前,如果我们的碰撞监控是准确的,8.3有一个很好的机会解决了这个问题。一旦我们在我们的腰带上获得了超过几天的数据,我会更新这个答案。编辑:经过Fabric/Crashlytics一周的崩溃报告后,它看起来像8.3已经解决了这个崩溃的两个来源:一个来自MapKit,它试图渲染矢量地图图块和/或用OpenGL覆盖栅格图块ES在后台,另一个来自UIKit,它试图在后台渲染UITabBar的选项卡图像(同样,在后台使用OpenGL ES)。我很想听听别人在制作中看到的内容。

+0

Cool,thx。同时我已经添加了代码来解决这个问题,为每个人修复它,而不仅仅是升级到8.3 – 2015-04-16 15:35:47

+0

的用户,我仍然在8.3中看到这个崩溃... – 2015-06-12 21:52:10