gpt4 book ai didi

ios - Mapkit MapView VectorKit 在 iOS13 上崩溃

转载 作者:行者123 更新时间:2023-12-01 21:15:13 26 4
gpt4 key购买 nike

随着 iOS13 的发布,我们正在开发的应用程序上出现越来越多的 mapKit VectorKit 崩溃问题。我们无法在内部重现崩溃,我们自己的崩溃报告器每天都会收集 200 多个崩溃。

从我们得到的所有信息来看,崩溃总是发生在应用程序从后台进入事件状态时,并且此时 ViewController View 有一个 MKMapView subview 。可能是系统渲染 map UI的时候出了问题。

这个问题似乎是自iOS11甚至更早以来一直存在的iOS问题。目前,与崩溃相关的iOS13系统版本包括13.013.113.1.113.1.2。我已在Apple错误报告系统上报告了该问题,但到目前为止Apple还没有任何回应。

任何建议或提示将不胜感激。

仅供引用。崩溃堆栈如下。

Exception Type:  SIGABRT
Exception Codes: #0 at 0x1a8530ebc
Crashed Thread: 0

Thread 0 Crashed:
0 libsystem_kernel.dylib __pthread_kill + 8
1 libsystem_c.dylib abort + 100
2 libsystem_c.dylib __assert_rtn + 204
3 Metal MTLIOAccelCommandBufferStorageGrowSegmentList.cold.1 + 0
4 Metal MTLReportFailure + 476
5 Metal -[MTLTextureDescriptorInternal validateWithDevice:] + 2124
6 AGXMetalA11 0x00000001a85f93e8 + 64
7 VectorKit ggl::MetalResourceManager::newTexture(ggl::Texture const*) + 596
8 VectorKit ggl::MetalRenderer::prepareTexture(ggl::MetalResourceManager*, ggl::Texture const*) + 44
9 VectorKit ggl::MetalRenderer::_processQueue(ggl::RenderTarget*, ggl::RenderQueue*, id<MTLCommandBuffer>) + 3220
10 VectorKit ggl::MetalRenderer::_processQueue(ggl::RenderTarget*, ggl::RenderQueue*, id<MTLCommandBuffer>) + 96
11 VectorKit invocation function for block in ggl::MetalRenderer::frame(ggl::RenderTarget*, ggl::RenderQueue*, std::__1::function<void ()>, std::__1::function<void ()>) + 56
12 VectorKit invocation function for block in geo::TaskQueue::sync(std::__1::function<void ()>) + 60
13 libdispatch.dylib _dispatch_client_callout + 16
14 libdispatch.dylib _dispatch_async_and_wait_invoke_and_complete_recurse + 228
15 libdispatch.dylib _dispatch_async_and_wait_f + 100
16 VectorKit ggl::MetalRenderer::frame(ggl::RenderTarget*, ggl::RenderQueue*, std::__1::function<void ()>, std::__1::function<void ()>) + 544
17 VectorKit ggl::RenderFrame::execute(ggl::RenderTarget*, ggl::RenderQueue*, std::__1::function<void ()>, std::__1::function<void ()>) + 120
18 VectorKit -[MDDisplayLayer drawToTexture:withRenderQueue:completionHandler:] + 348
19 VectorKit -[MetalLayer _onTimerFired:withPresent:] + 280
20 VectorKit md::MapEngine::renderScene(double, std::__1::function<void ()>) + 104
21 VectorKit md::MapEngine::onRenderTimerFired(double) + 328
22 VectorKit ggl::DisplayLink::onTimerFired(double) + 40
23 VectorKit -[_GGLDisplayLinkTarget displayLinkFired:] + 84
24 QuartzCore CA::Display::DisplayLink::dispatch_items(unsigned long long, unsigned long long, unsigned long long) + 632
25 QuartzCore display_timer_callback(__CFMachPort*, void*, long, void*) + 264
26 CoreFoundation __CFMachPortPerform + 172
27 CoreFoundation __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 56
28 CoreFoundation __CFRunLoopDoSource1 + 444
29 CoreFoundation __CFRunLoopRun + 2168
30 CoreFoundation CFRunLoopRunSpecific + 464
31 GraphicsServices GSEventRunModal + 104
32 UIKitCore UIApplicationMain + 1936
33 homebrew main (main.m:16)
34 libdyld.dylib start + 4

最佳答案

检查 iOS12 与 iOS13 上的 CPU 利用率。

我注意到我的应用程序崩溃了,因为我过于频繁地向 map 添加和删除折线(尽管此问题仅出现在 iOS13 中,而不是 iOS12)。

请参阅我关于此的 SO 帖子 here .

查看您的崩溃日志,看看是否发现以下内容:

Event:           cpu usage  
Action taken: Process killed
CPU: 48 seconds cpu time over 54 seconds (88% cpu average), exceeding limit of 80% cpu over 60 seconds
CPU limit: 48s
Limit duration: 60s
CPU used: 48s
Duration: 54.45s
Steps: 15

如果我减少重绘 map 叠加层的频率,我的应用程序就会在 iOS13 中停止崩溃。

关于ios - Mapkit MapView VectorKit 在 iOS13 上崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58322860/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com