iOS 11与VectorKit和Texture2D崩溃

时间:2017-10-24 15:02:42

标签: mapkit ios11

由于iOS 11已经推出(11.0至11.0.3),我们遇到了这些崩溃事件。我只能假设在地图视图或地图图块被销毁时发生了这些崩溃。但是,我们无法在内部重现问题。曲棍球报道了这次事故。

鉴于此崩溃总是在线程0(即主线程),我们不确定从哪里开始调查。这是正常的"用于与主线程上的设置和拆卸相关的任何UI,并且没有任何崩溃的堆栈帧包含对我们编写的代码的引用。

有没有人在dealloc上遇到过Texture2D次崩溃?

Exception Type:  SIGSEGV
Exception Codes: SEGV_ACCERR at 0xbadd9a85ba4fbebd
Crashed Thread:  0

Thread 0 Crashed:
0   VectorKit                            0x0000000193c6b744 ggl::Texture2D::~Texture2D() + 92
1   libc++.1.dylib                       0x0000000183456f64 std::__1::__shared_weak_count::__release_shared() + 68
2   VectorKit                            0x0000000193d33bf0 -[VKRasterTile .cxx_destruct] + 168
3   libobjc.A.dylib                      0x000000018349eef4 object_cxxDestructFromClass(objc_object*, objc_class*) + 144
4   libobjc.A.dylib                      0x00000001834ac638 objc_destructInstance + 84
5   libobjc.A.dylib                      0x00000001834ac690 object_dispose + 12
6   VectorKit                            0x0000000193c3e1e8 -[VKTile dealloc] + 64
7   VectorKit                            0x0000000193c49fa4 -[VKRasterTile dealloc] + 72
8   VectorKit                            0x0000000193e51f80 __destroy_helper_block_.216 + 36
9   libsystem_blocks.dylib               0x00000001839b1a60 _Block_release + 156
10  libdispatch.dylib                    0x0000000183911048 _dispatch_client_callout + 12
11  libdispatch.dylib                    0x000000018391db74 _dispatch_main_queue_callback_4CF$VARIANT$mp + 1012
12  CoreFoundation                       0x0000000183f33f20 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 8
13  CoreFoundation                       0x0000000183f31afc __CFRunLoopRun + 2008
14  CoreFoundation                       0x0000000183e522d8 CFRunLoopRunSpecific + 432
15  GraphicsServices                     0x0000000185ce3f84 GSEventRunModal + 96
16  UIKit                                0x000000018d3ff880 UIApplicationMain + 204
17  <removed app name>                   0x0000000104f75438 main (main.m:17)
18  libdyld.dylib                        0x000000018397656c start + 0

1 个答案:

答案 0 :(得分:2)

我们也遇到了这个问题,我们解决了它。

  1. 如果无法在屏幕上看到,请不要更新MapKit渲染(在iOS 11之前我们为预加载地图数据和图像做了)
  2. 检查块并在从视图中删除后不保留MapKit(这可能会导致第一点)
  3. 我想这是由MapKit渲染过程中地图属性的变化引起的 过程