I'm getting a lot of crash reports on iOS 8 with this stack trace:
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
Most of them happen on iOS 8.2.0 while app running in background.
I'm sure no action performs to mapview except for setCenterCoordinate
and setRegion
when in background.
According to Apple Q&A I know that I shouldn't make MKMapView redraw in background. But I tried change mapview's centerCoordinate and region in background programetically but it didn't crash.
Is this a bug of iOS 8.2.0 ? Is there any way to fix or avoid this? Thanks!
You need to stop rendering to any OpenGL ES Surface as soon as you enter the background.
As Apple suggests in the linked article, use the AppDelegate methods combined with NSNotificationCenter...
Look at this answer for reference...
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With