I’ve been seeing the libGPUSupportMercury.dylib iOS Crash and having a tough time nailing it down. I still can’t reproduce it predictably.
However, I believe I have enough to avoid it.
libGPUSupportMercury.dylib iOS Crash
For me it’s happening in the initWithFrame: call for MKMapView in the background. The app monitors for significant location changes. When it’s launched from a location change, initializing the map view crashes (sometimes).
You might need to check the state of the app before making UI calls/updates:
[UIApplication sharedApplication].applicationState == UIApplicationStateActive // or inactive or background
1 | libGPUSupportMercury.dylib | gpus_ReturnNotPermittedKillClient + 10 |
2 | libGPUSupportMercury.dylib | gpusSubmitDataBuffers + 108 |
3 | libGPUSupportMercury.dylib | gldCreateContext + 206 |
4 | GLEngine | gliCreateContextWithShared + 600 |
5 | OpenGLES | -[EAGLContext initWithAPI:properties:] + 404 |
6 | OpenGLES | -[EAGLContext initWithAPI:sharedWithCompute:] + 140 |
7 | VectorKit | ggl::OESContext::OESContext(ggl::GLDevice*, std::__1::shared_ptr<ggl::OESSharegroup>) + 528 |
8 | VectorKit | ggl::GLDevice::createRenderer() + 108 |
9 | VectorKit | -[MDDisplayLayer _createGLLayer] + 164 |
10 | VectorKit | -[MDDisplayLayer init] + 68 |
11 | VectorKit | -[VKMapView initWithGlobe:shouldRasterize:inBackground:] + 484 |
12 | MapKit | -[MKBasicMapView initWithFrame:andGlobe:shouldRasterize:] + 360 |
13 | MapKit | -[MKMapView _commonInitFromIB:gestureRecognizerHostView:showsAttribution:] + 1016 |
14 | MapKit | -[MKMapView initWithFrame:] + 128 |