我在蘋果商店有一個應用程序,在iOS6更新後,我有MKMapView
內的數百個崩潰報告。我無法設法在我的設備上重現崩潰。它看起來像EAGLContext
的問題。我們不在應用中使用OpenGL,但在不同的控制器中有多個MKMapView
實例。 我在這裏發現了一個類似的問題iOS 6 app crashes in EAGLContext when displaying maps但他們使用OpenGL。偶爾iOS 6 MKMapView在initWithFrame中崩潰
這裏有回溯:
Exception Type: SIGSEGV
Exception Codes: SEGV_ACCERR at 0x1
Crashed Thread: 0
Thread 0 Crashed:
0 libGPUSupportMercury.dylib 0x00000e22 gpus_ReturnNotPermittedKillClient + 10
1 libGPUSupportMercury.dylib 0x3bccc5fb gldCreateContext + 190
2 GLEngine 0x344c2b15 gliCreateContextWithShared + 676
3 OpenGLES 0x0000491d -[EAGLContext initWithAPI:properties:] + 1433
4 OpenGLES 0x000042d7 -[EAGLContext initWithAPI:sharedWithCompute:] + 143
5 VectorKit 0x00011c81 -[VGLGPU init] + 105
6 VectorKit 0x000d4659 __24+[VGLGPU sharedInstance]_block_invoke_0 + 49
7 libdispatch.dylib 0x000014b7 _dispatch_client_callout + 23
8 libdispatch.dylib 0x000073f7 dispatch_once_f$VARIANT$mp + 43
9 VectorKit 0x00011c13 +[VGLGPU sharedInstance] + 39
10 VectorKit 0x00001db1 -[VKMainLoop updateLinkState] + 485
11 VectorKit 0x00001955 -[VKScreenCanvas _updateDisplayStatus:] + 109
12 UIKit 0x0001c371 -[UIView initWithFrame:] + 129
13 VectorKit 0x00010ca5 -[VGLScreenCanvas initWithFrame:context:] + 53
14 VectorKit 0x00010a7d -[VKScreenCanvas initWithFrame:context:] + 57
15 VectorKit 0x00010a3f -[VKScreenCanvas initWithFrame:] + 39
16 VectorKit 0x000106bd -[VKMapCanvas initWithFrame:shouldRasterize:] + 65
17 VectorKit 0x000104bb -[VKMapView initWithFrame:andGlobe:shouldRasterize:] + 647
18 MapKit 0x0000dc95 -[MKMapView _commonInitAndEnableLoading:fromIB:] + 725
19 MapKit 0x0000d811 -[MKMapView initWithFrame:] + 257
.....
你確定這不是因爲內存泄漏嗎?我遇到了類似的問題,但我已經確定了原因。 iOS 6 MKMapView比以前的版本多用10倍的內存。我的應用程序全都是關於在地圖上顯示的東西,其佔地面積從30MB增加到280MB。我試圖解決它,但還沒有線索。 – Trein
嗨@trein,例外情況是SIGSEGV,據我所知,這應該是由不良的內存訪問引起的。 – Breezeight