2013-11-22 20 views
52

Tôi nhận được các loại báo cáo sự cố khác nhau liên quan đến VectorKitMKMapSnapShotter. Sự cố xảy ra khá ngẫu nhiên, nhưng có vẻ như chúng xảy ra nhiều nhất khi quay trở lại từ nền. Thiết bị không gửi bất kỳ cảnh báo bộ nhớ nào trước khi nó xảy ra.Báo cáo sự cố VectorKit với MKMapSnapshotter trên iOS

Điều gì đang xảy ra ở đây?

Tôi đang sử dụng: là

if (!_snapshotQueue) { 
    _snapshotQueue = dispatch_queue_create("com.bestappever.snapshot", DISPATCH_QUEUE_SERIAL); 
} 
[_snapshotter cancel] 
_snapshotter = [[MKMapSnapshotter alloc] initWithOptions:options]; 
__weak __typeof(self)__self = self; 
[_snapshotter startWithQueue:queue completionHandler:^(MKMapSnapshot *snapshot, NSError *error) { 
    dispatch_async(dispatch_get_main_queue(), ^{ 
     __strong __typeof(__self)_self = __self; 
     [_self doSomething]; 
    }); 
}]; 

Phổ biến nhất như sau:

Thread 11 Crashed: 
0 libobjc.A.dylib      0x38502b66 objc_msgSend + 5 
1 VectorKit       0x35bc8997 -[VKTileProvider changeTileForKey:toState:withMetadata:withTile:forLayer:] + 51 
2 VectorKit       0x35c1f88d -[VKTileProvider tileSource:invalidateKeys:] + 168 
3 VectorKit       0x35c41325 -[VKTileSource didFailToLoadTileKey:error:] + 196 
4 GeoServices       0x32ca906b ___ZN8LoadItem15deleteRequesterEP8NSStringbb_block_invoke + 87 
5 libdispatch.dylib     0x389ec0c3 _dispatch_call_block_and_release + 11 
6 libdispatch.dylib     0x389f0e7b _dispatch_queue_drain + 375 
7 libdispatch.dylib     0x389edf93 _dispatch_queue_invoke + 43 
8 libdispatch.dylib     0x389f1745 _dispatch_root_queue_drain + 77 
9 libdispatch.dylib     0x389f19c5 _dispatch_worker_thread2 + 57 
10 libsystem_pthread.dylib    0x38b1bdff _pthread_wqthread + 298 
11 libsystem_pthread.dylib    0x38b1bcc4 start_wqthread + 8 

Một số ví dụ khác:

Thread 11 Crashed: 
0 libobjc.A.dylib      0x3850a7aa lookUpImpOrForward + 94 
1 libobjc.A.dylib      0x3850302b _class_lookupMethodAndLoadCache3 + 35 
2 libobjc.A.dylib      0x38502df9 _objc_msgSend_uncached + 25 
3 VectorKit       0x35bc8997 -[VKTileProvider changeTileForKey:toState:withMetadata:withTile:forLayer:] + 50 
4 VectorKit       0x35bc895d -[VKTileProvider tileSource:didFetchTile:forKey:] + 60 
5 VectorKit       0x35bc8915 -[VKTileSource fetchedTile:forKey:] + 44 
6 VectorKit       0x35bc9a95 -[VKTileSetBackedTileSource fetchedTile:forKey:] + 212 
7 VectorKit       0x35bc889d -[VKTileSource _fetchedTile:] + 224 
8 VectorKit       0x35bc8409 __49-[VKTileSource decodeData:downloadKey:sourceKey:]_block_invoke_3 + 109 
9 libdispatch.dylib     0x389ec0c3 _dispatch_call_block_and_release + 11 
10 libdispatch.dylib     0x389f0e7b _dispatch_queue_drain + 375 
11 libdispatch.dylib     0x389edf93 _dispatch_queue_invoke + 43 
12 libdispatch.dylib     0x389f1745 _dispatch_root_queue_drain + 77 
13 libdispatch.dylib     0x389f19c5 _dispatch_worker_thread2 + 57 
14 libsystem_pthread.dylib    0x38b1bdff _pthread_wqthread + 298 
15 libsystem_pthread.dylib    0x38b1bcc4 start_wqthread + 8 


Thread 6 Crashed: 
0 libsystem_kernel.dylib    0x390a41fc __pthread_kill + 8 
1 libsystem_c.dylib     0x39054ffd abort + 76 
2 Ding Dong       0x00090de7 uncaught_exception_handler + 27 
3 CoreFoundation      0x2e6a524f __handleUncaughtException + 579 
4 libobjc.A.dylib      0x38ae590f _objc_terminate() + 175 
5 libc++abi.dylib      0x3839a1c7 std::__terminate(void (*)()) + 79 
6 libc++abi.dylib      0x38399a1d __cxxabiv1::exception_cleanup_func(_Unwind_Reason_Code, _Unwind_Exception*) + 1 
7 libobjc.A.dylib      0x38ae5783 objc_exception_throw + 250 
8 CoreFoundation      0x2e6a88e7 -[NSObject doesNotRecognizeSelector:] + 202 
9 CoreFoundation      0x2e6a71cb ___forwarding___ + 707 
10 CoreFoundation      0x2e5f64d8 _CF_forwarding_prep_0 + 24 
11 VectorKit       0x36077cb9 -[VKTileProvider tileSource:keyIsNeeded:] + 68 
12 VectorKit       0x36077c2b -[VKTileSource _shouldDecodeTile:] + 178 
13 VectorKit       0x36077a91 -[VKTileSource didFetchData:forKey:] + 108 
14 GeoServices       0x3319a087 ___ZNK49-[GEOTileLoaderInternal _loadedTile:forKey:info:]66__49-[GEOTileLoaderInternal _loadedTile:forKey:info:]_block_invoke3$_1clERKN8LoadItem9RequesterE_block_invoke_2 + 55 
15 libdispatch.dylib     0x38fc8d1b _dispatch_call_block_and_release + 11 
16 libdispatch.dylib     0x38fcf273 _dispatch_queue_drain$VARIANT$mp + 375 
17 libdispatch.dylib     0x38fcf06b _dispatch_queue_invoke$VARIANT$mp + 43 
18 libdispatch.dylib     0x38fcfce1 _dispatch_root_queue_drain + 77 
19 libdispatch.dylib     0x38fcff59 _dispatch_worker_thread2 + 57 
20 libsystem_pthread.dylib    0x3910adbf _pthread_wqthread + 298 
21 libsystem_pthread.dylib    0x3910ac84 start_wqthread + 8 

Thread 16 Crashed: 
0 VectorKit       0x35a36476 std::__1::__hash_iterator<std::__1::__hash_node<std::__1::pair<VKTileKey, void const*>, void*>*> std::__1::__hash_table<std::__1::pair<VKTileKey, void const*>, std::__1::__unordered_map_hasher<VKTileKey, void const*, hashkey, true>, std::__1::__unordered_map_equal<VKTileKey, void const*, eqkey, true>, vk_allocator<std::__1::pair<VKTileKey, void const*> > >::find<VKTileKey>(VKTileKey const&) + 54 
1 VectorKit       0x35a3642d -[VKTileKeyMap objectForKey:] + 24 
2 VectorKit       0x35a3a837 -[VKTileKeyList containsKey:] + 34 
3 VectorKit       0x35a54b9f -[VKTileProvider tileMatters:] + 78 
4 VectorKit       0x35a549c1 -[VKTileProvider changeTileForKey:toState:withMetadata:withTile:forLayer:] + 92 
5 VectorKit       0x35a5495d -[VKTileProvider tileSource:didFetchTile:forKey:] + 60 
6 VectorKit       0x35a54915 -[VKTileSource fetchedTile:forKey:] + 44 
7 VectorKit       0x35a5489d -[VKTileSource _fetchedTile:] + 224 
8 VectorKit       0x35a54409 __49-[VKTileSource decodeData:downloadKey:sourceKey:]_block_invoke_3 + 109 
9 libdispatch.dylib     0x388780c3 _dispatch_call_block_and_release + 11 
10 libdispatch.dylib     0x3887ce7b _dispatch_queue_drain + 375 
11 libdispatch.dylib     0x38879f93 _dispatch_queue_invoke + 43 
12 libdispatch.dylib     0x3887d745 _dispatch_root_queue_drain + 77 
13 libdispatch.dylib     0x3887d9c5 _dispatch_worker_thread2 + 57 
14 libsystem_pthread.dylib    0x389a7dff _pthread_wqthread + 298 
15 libsystem_pthread.dylib    0x389a7cc4 start_wqthread + 8 
+0

Tôi gặp vấn đề tương tự, và tôi nghĩ rằng nó có thể liên quan đến OpenGL vẽ trong nền, mà tôi đã nghe có thể gây ra vấn đề. Tôi hy vọng ai đó có nhiều kiến ​​thức về loại điều này có thể trả lời. – Matt

+0

Tôi vừa gặp sự cố khi khởi động ứng dụng với trình gỡ lỗi được đính kèm, vì vậy nó cũng xảy ra khi khởi động mới. Khám phá các thanh ghi đã cho tôi không có gợi ý. –

+1

Tôi cũng nhận được sự cố từ VectorKit, nhưng việc thiếu bất kỳ tài liệu nào về VK đang làm cho việc khắc phục sự cố khó khăn hơn nhiều. Sẽ hữu ích nếu có bất kỳ nguồn thông tin trực tuyến nào về nguyên nhân gây ra các sự cố khác nhau thông qua VectorKit. – guthook

Trả lời

1

Làm thế nào có thể lặp lại điều này? Thiết bị sắp ra khỏi chế độ ngủ? Có gì trên màn hình khi ứng dụng chạy vào nền?

Trong ViewController bạn có thể thử đăng ký sự kiện NSNotification, UIApplicationWillResignActiveNotification

Khi App là đi sâu vào phía sau, kêu gọi hủy bỏ vào bất kỳ MKMapSnapshotter

Nếu điều đó không làm việc, bạn có thể cố gắng mạnh mẽ hơn các biện pháp, như chế độ xem ẩn, chỉ để xác định xem chúng có liên quan đến sự cố không.

+0

Tôi thấy khó tái sản xuất tại địa phương, nhưng nó xuất hiện khá thường xuyên trong sản xuất. –

0

tôi đã cùng một vấn đề xảy ra xung đột thường xuyên nhưng ngẫu nhiên ususally trông như:

VectorKit 0x10663fe9 -[VKTileProvider tileSource:didFetchTile:forKey:] + 105 

tôi cố định nó bằng cách loại bỏ dòng này:

this.mapSnapshotter.Cancel(); 

Vì vậy, tôi nghĩ rằng Apple có lỗi với MKMapSnapshotter Phương thức hủy.

Hy vọng rằng sẽ rất hữu ích

Các vấn đề liên quan