2014-09-18 4 views
12

Я получаю много сообщений о сбоях на прошивке 8 с этой трассировкой стеки:Загадочная аварии на прошивке 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 или изменения от Apple к нему. Учитывая, что я не единственный, испытывающий этот крах, я склонен больше обвинять Apple :-)

Спасибо.

+0

Вы не дали нам многого для продолжения. Я не вижу ничего плохого в коде. Работает ли он в Simulator под управлением iOS 8? Если это так, то ваша единственная надежда - найти iPhone 5 под управлением iOS 8 и протестировать его. –

+0

Пробовал это на моем iPhone 5s/iPad Air с iOS 8, и он отлично работает, симулятор. –

+0

@CherpakEvgeny К сожалению, изменение тонированного изображения не устранило эту проблему для меня, смогли ли вы исправить вашу? – kbtombul

ответ

23

У меня недостаточно репутации, чтобы комментировать и спрашивать подробности, однако я испытываю такую ​​же проблему, в основном на iPhone 5, а также 5c, 4s, iPad 3 и iPod 5G, и я считаю, что я скажем, будет полезно, даже если он не ответит на вопрос.

Прежде всего, это краш, который случается, когда вы пытаетесь что-то нарисовать с помощью OpenGL или изменяете размер или перемещаете MKMapView в фоновом режиме. Это может быть не очевидно в ваших журналах сбоев, но каждый из отчетов о сбоях, которые я получил, - это когда приложение запускалось в фоновом режиме. Похоже, для вас это одинаково, учитывая, что UIViewController называется InitialSlidingViewController. Это было с «Значительным обновлением местоположения» в большинстве случаев в моем случае, однако это может быть обновление «Фоновая выборка» или «Посещения» или «Молчаливое дистанционное уведомление» в вашем случае.

Одна вещь, которую я заметил в своем приложении, заключалась в том, что она настраивала навигационную панель, когда она разбилась, в частности, пытаясь сделать изображение, у меня есть тонированные изображения в моей навигационной панели. Для вас это что-то другое, но что-то, что требует OpenGL, возможно, эффект движения, такой как параллакс, я вижу _UIAccessibilityReduceMotion в трассировке стека?

Независимо от того, что вы или я делаю, факт, что это происходит на некоторых устройствах, и никогда на некоторых устройствах означает, что это скорее всего ошибка iOS. Я также вижу «CI :: can_use_gpu()» в моей трассе стека, он сбой, потому что он использует gpu, проверяя, может ли он использовать gpu.

Итак, как мы можем предотвратить его сбой?

Вы можете попробовать отключить функцию, которую вы используете, для меня я заменю изображение правильно окрашенным, вместо того, чтобы использовать цвет оттенка.
Или вы можете попробовать загрузить другой контроллер представлений, возможно, просто пустой контроллер представления, когда приложение запустится в фоновом режиме, а затем, когда он появится на переднем плане, замените контроллер вида на тот, который вы используете прямо сейчас.

+2

Я действительно подозревал столько же - по тем же причинам, и есть высказывание «Великие умы думают как» - так что я думаю, что это так. –

+0

Я не подозреваю, что это Ошибка iOS: https://developer.apple.com/library/ios/qa/qa1766/_index.html –

+3

Спасибо @Sjoerd за обращение к документам, я должен был включить эту ссылку в свой ответ, я обновлю соответствующим образом. Проблема в том, что iOS использует OpenGL внутри для некоторых основных задач, и это приводит к сбою. У меня есть контроллер вида, который имеет UIBarButtonItem с тонированным изображением. Я настраиваю эту кнопку в viewDidLoad, и я делаю этот контроллер представления rootViewController в applicationDidFinishLaunching. Я думаю, что это довольно простая настройка, чтобы иметь такую ​​проблему. – kbtombul

1

Я вижу это в приложении, которое включает в себя вид mapKit на одной из вкладок. Сообщается, что ошибка связана с обновлениями, которые выполняются на карте во время фонового рисунка приложения, и я понял, что единственное, что может быть обновлено, - это местоположение пользователя «моргая» синей точкой. Поэтому я добавил код, чтобы установить, когда приложение получает фоновые рисунки, и устанавливает его в YES, когда оно становится активным.Кажется, это остановило ошибку в моем альфа-тестировании. Я обновлю это, как только вернусь к результатам бета-тестирования.

+1

Все еще видя эту катастрофу от пользователей, поэтому снова вдавливайтесь в нее. Трассировка стека включает вызов метода «VKPolygonTileSource TileForData: downloadKey: sourceKey», поэтому мне интересно, загружены или обновлены ли фрагменты карты во время работы приложения. Возможный сценарий - плохая связь, так что медленное соединение, карта начинает загружаться, пользователь вводит ее через кнопку «Домой», плитка карты заканчивает загрузку, пытается обновить, сбой. –

+0

Все еще видя этот крах, но на гораздо более низкой частоте (один раз в неделю). Это критически важное для бизнеса приложение, поэтому даже это проблематично. :-( –

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 в фоновом режиме). Хотелось бы услышать от других, что вы видите на производстве.

+0

Cool, thx. Тем временем я добавил код для решения этой проблемы, чтобы исправить это для всех, и не только для пользователей, которые обновили до 8.3 –

+0

. Я вижу этот сбой в 8.3 все еще ... –

Смежные вопросы