2015-03-27 10 views
10

Dostaję wiele raportów o awariach na iOS 8 z tym ślad stosu:Dużo wypadków w gpus_ReturnNotPermittedKillClient

Thread : Crashed: com.apple.mapdisplay.dispatch.tiledecodequeue 
0 libGPUSupportMercury.dylib  0x2ce478fe gpus_ReturnNotPermittedKillClient + 9 
1 libGPUSupportMercury.dylib  0x2ce483cb gpusSubmitDataBuffers + 110 
2 libGPUSupportMercury.dylib  0x2ce48249 gldCreateContext + 208 
3 GLEngine      0x28a4e93b gliCreateContextWithShared + 602 
4 OpenGLES      0x28b2aab3 -[EAGLContext initWithAPI:properties:] + 406 
5 OpenGLES      0x28b2a8ff -[EAGLContext initWithAPI:sharegroup:] + 114 
6 VectorKit      0x30fb3e65 ggl::OESContext::OESContext(ggl::GLDevice*, std::__1::shared_ptr<ggl::OESSharegroup>) + 492 
7 VectorKit      0x30fad45d ggl::GLDevice::vendLoader() + 204 
8 VectorKit      0x30f885c5 -[VKRoadTile buildGglMeshesWithDevice:] + 2032 
9 VectorKit      0x30f870c9 -[VKRoadTile initWithKey:modelTile:styleManager:sharedResources:contentScale:device:] + 84 
10 VectorKit      0x30c3a893 -[VKRoadTileSource tileForData:downloadKey:sourceKey:] + 154 
11 VectorKit      0x30c34bc5 __49-[VKTileSource decodeData:downloadKey:sourceKey:]_block_invoke + 84 
12 libdispatch.dylib    0x33e917bb _dispatch_call_block_and_release + 10 
13 libdispatch.dylib    0x33e98577 _dispatch_async_redirect_invoke + 550 
14 libdispatch.dylib    0x33e9adab _dispatch_root_queue_drain + 866 
15 libdispatch.dylib    0x33e9a9a9 _dispatch_worker_thread + 72 
16 libsystem_pthread.dylib  0x33ff4e93 _pthread_body + 138 
17 libsystem_pthread.dylib  0x33ff4e07 _pthread_start + 118 

Większość z nich stało na iOS 8.2.0, gdy aplikacja działa w tle.

Jestem pewna, że ​​żadna akcja nie wykonuje odwzorowania z wyjątkiem setCenterCoordinate i setRegion w tle.

Według Apple Q&A Wiem, że nie powinienem przerysowywać MKMapView w tle. Ale spróbowałem programowo zmienić współrzędną i regionem widoku mapy w tle, ale się nie zawiesił.

Czy to błąd systemu iOS 8.2.0? Czy istnieje sposób, aby to naprawić lub tego uniknąć? Dzięki!

Odpowiedz

5

Musisz przerwać renderowanie do dowolnej powierzchni OpenGL ES zaraz po wejściu w tło.

jak Apple sugeruje w połączonej artykułu, należy użyć metody AppDelegate połączeniu z NSNotificationCenter ...

Spójrz na this answer odsyłającego ...

+1

Dzięki! Idealna odpowiedź – Danoli3

+0

jak mogę je ręcznie zatrzymać ~ – debuggenius

+0

przeczytaj moją odpowiedź i postępuj zgodnie z instrukcjami? –