我在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 + 650123
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第三代(不确定它仅限于这些设备)。
更多信息 另一个经常发生的崩溃具有类似的堆栈跟踪,并且由此代码导致:
CELoginViewController *loginVC = [[CELoginViewController alloc] initWithNibName:nil bundle:nil];
NavControllerPortrait *nav = [[NavControllerPortrait alloc] initWithRootViewController:loginVC];
所以我强烈怀疑或我的自定义UINavigationController或Apple的变化。鉴于我不是唯一遇到此次崩溃的人 - 我更倾向于责怪Apple: - )
感谢。
答案 0 :(得分:23)
我没有足够的声誉来评论和询问细节,但我遇到了同样的问题,主要是在iPhone 5上,还有5c,4s,iPad 3和iPod 5G,我相信我要去的地方说即使它没有回答这个问题也会有所帮助。
首先,这是当您尝试使用OpenGL绘制内容或调整大小或在后台移动MKMapView 时发生的崩溃。在崩溃日志中可能并不明显,但我收到的每一个崩溃报告都是在后台启动应用程序的时候。考虑到UIViewController被称为InitialSlidingViewController,看起来它对你来说是一样的。在我的情况下,大部分时间都是“重要位置更新”,但在您的情况下可能是“后台获取”或“访问”更新或“无声远程通知”。
我在应用程序中注意到的一件事是它在崩溃时设置导航栏,更具体地说是尝试渲染图像,我在导航栏中设置了有色图像。对于你来说这是另外一些需要OpenGL的东西,可能是像视差这样的动作效果,我在堆栈跟踪中看到了_UIAccessibilityReduceMotion?
无论你是在做什么,或者我在做什么,事实上它在某些设备上发生的事情更多,从不在某些设备上发生,这意味着它很可能是一个iOS错误。我在堆栈跟踪中也看到“CI :: can_use_gpu()”,因为它在检查是否可以使用gpu时使用gpu而崩溃。
那么我们如何防止它崩溃?
您可以尝试禁用正在使用的功能,对我来说,我会用正确颜色的图像替换图像,而不是使用浅色。 或者你可以尝试加载另一个视图控制器,也许只是一个空的视图控制器,当应用程序在后台启动时,然后当它来到前台交换视图控制器时你正在使用的那个。
答案 1 :(得分:2)
Apple开发人员论坛上讨论了这种行为,Apple员工承认这是一个错误:
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)。很想听别人说你在制作中看到了什么。答案 2 :(得分:1)
我在一个应用程序上看到这个,其中包含一个选项卡上的mapKit视图。据报道,该错误与应用程序背景下正在地图上执行的更新有关,我意识到唯一可以更新的是用户位置" blinky"蓝点。所以我添加了代码来设置
self.mapview.showsUserLocation = NO;
每当应用程序变为背景时,并在应用程序变为活动状态时将其设置为YES。这似乎已经停止了我的alpha测试中的错误。一旦我收到beta测试的结果,我会更新这个。
答案 3 :(得分:0)
为navigationBar
设置背景图片还会在午餐后将iOS8崩溃:
[self.navigationBar setBackgroundImage:[UIImage imageNamed:imgName] forBarMetrics:UIBarMetricsDefault];
根据Apple documents,也许我应该在
中自定义navigationBar
- (void)applicationDidBecomeActive:(UIApplication *)application {
// customize the navigationBar only once
...
}
但是我认为这很可怜。