如何解决iOS 应用程序无处不在地保持现场僵局
我有一个通过 MDM 分发到美国多个地点的本地 B2B 应用程序,这些单元 24/7 全天候运行,是供人们使用的公共终端。该应用程序还通过引导式访问锁定到位。
在过去的几周里,我们一直遇到应用程序冻结的问题,我一直在努力找出原因。它主要发生在蜂窝 iPad 上,但并非唯一。应用程序中也没有冻结的特定位置,所以我不确定是否有任何特别的东西阻塞了主线程。
我一直无法让它在家里冻结,它只发生在现场。并且已经尝试了一切让它冻结,通过自动化数百个动作,更改网络限制器以查看后台是否有未正确处理的呼叫。我已经通过各种工具查看 iPad 是否内存不足,但我认为这会导致应用程序崩溃而不是冻结。
我添加了更多日志记录以及 New Relic 移动 SDK 来尝试捕捉某些东西,但我没有看到任何异常。
一切正常,然后这些 iPad 自动更新到 14.4-14.6。
有没有人知道可能是什么原因或者这些 iPadOS 版本是否有问题?任何建议都会非常有帮助,这让我发疯。
更新:
我已经让它冻结了,这是我暂停时它去的地方
回溯:
* thread #1,queue = 'com.apple.main-thread',stop reason = signal SIGSTOP
* frame #0: 0x00000001c87e6908 libsystem_kernel.dylib`mach_msg_trap + 8
frame #1: 0x00000001c87e5d0c libsystem_kernel.dylib`mach_msg + 72
frame #2: 0x000000019d05be00 CoreFoundation`__CFRunLoopServiceMachPort + 368
frame #3: 0x000000019d056200 CoreFoundation`__CFRunLoopRun + 1184
frame #4: 0x000000019d055818 CoreFoundation`CFRunLoopRunSpecific + 572
frame #5: 0x00000001b375b570 GraphicsServices`GSEventRunModal + 160
frame #6: 0x000000019f9810e8 UIKitCore`-[UIApplication _run] + 1052
frame #7: 0x000000019f986664 UIKitCore`UIApplicationMain + 164
frame #8: 0x0000000102b8e538 Application`main(argc=<unavailable>,argv=<unavailable>) at main.m:14:16 [opt]
frame #9: 0x000000019cd34140 libdyld.dylib`start + 4
* thread #3,name = 'gputools.smt_poll.0x2838a1e20'
* frame #0: 0x00000001c880ab54 libsystem_kernel.dylib`__semwait_signal + 8
frame #1: 0x00000001a5cfead4 libsystem_c.dylib`nanosleep + 212
frame #2: 0x00000001a5cfe9ac libsystem_c.dylib`usleep + 64
frame #3: 0x000000010993e5cc GPUToolscore`smt_poll_thread_entry(void*) + 144
frame #4: 0x00000001e4a37c74 libsystem_pthread.dylib`_pthread_start + 288
* thread #4,name = 'gputools.smt_poll.0x28389eec0'
* frame #0: 0x00000001c880ab54 libsystem_kernel.dylib`__semwait_signal + 8
frame #1: 0x00000001a5cfead4 libsystem_c.dylib`nanosleep + 212
frame #2: 0x00000001a5cfe9ac libsystem_c.dylib`usleep + 64
frame #3: 0x0000000103c36fe8 libmTLCapture.dylib`___lldb_unnamed_symbol2228$$libmTLCapture.dylib + 104
frame #4: 0x00000001e4a37c74 libsystem_pthread.dylib`_pthread_start + 288
* thread #9,name = 'com.apple.uikit.eventfetch-thread'
* frame #0: 0x00000001c87e6908 libsystem_kernel.dylib`mach_msg_trap + 8
frame #1: 0x00000001c87e5d0c libsystem_kernel.dylib`mach_msg + 72
frame #2: 0x000000019d05be00 CoreFoundation`__CFRunLoopServiceMachPort + 368
frame #3: 0x000000019d056200 CoreFoundation`__CFRunLoopRun + 1184
frame #4: 0x000000019d055818 CoreFoundation`CFRunLoopRunSpecific + 572
frame #5: 0x000000019e2b2094 Foundation`-[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 228
frame #6: 0x000000019e2b1f74 Foundation`-[NSRunLoop(NSRunLoop) runUntilDate:] + 88
frame #7: 0x000000019fa2dc28 UIKitCore`-[UIEventFetcher threadMain] + 504
frame #8: 0x000000019e40edb0 Foundation`__NSThread__start__ + 848
frame #9: 0x00000001e4a37c74 libsystem_pthread.dylib`_pthread_start + 288
* thread #11
* frame #0: 0x00000001c880a580 libsystem_kernel.dylib`__psynch_cvwait + 8
frame #1: 0x00000001e4a31308 libsystem_pthread.dylib`_pthread_cond_wait$VARIANT$mp + 1236
frame #2: 0x00000001b0eb1a20 libc++.1.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 24
frame #3: 0x00000001054ec4d0 NewRelic`___lldb_unnamed_symbol3677$$NewRelic + 240
frame #4: 0x00000001054eca60 NewRelic`___lldb_unnamed_symbol3699$$NewRelic + 28
frame #5: 0x00000001054ecc08 NewRelic`___lldb_unnamed_symbol3702$$NewRelic + 72
frame #6: 0x00000001e4a37c74 libsystem_pthread.dylib`_pthread_start + 288
* thread #12
* frame #0: 0x00000001c880a580 libsystem_kernel.dylib`__psynch_cvwait + 8
frame #1: 0x00000001e4a31308 libsystem_pthread.dylib`_pthread_cond_wait$VARIANT$mp + 1236
frame #2: 0x00000001b0eb1a20 libc++.1.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 24
frame #3: 0x00000001054ec4d0 NewRelic`___lldb_unnamed_symbol3677$$NewRelic + 240
frame #4: 0x00000001054eca60 NewRelic`___lldb_unnamed_symbol3699$$NewRelic + 28
frame #5: 0x00000001054ecc08 NewRelic`___lldb_unnamed_symbol3702$$NewRelic + 72
frame #6: 0x00000001e4a37c74 libsystem_pthread.dylib`_pthread_start + 288
* thread #13
* frame #0: 0x00000001c880a580 libsystem_kernel.dylib`__psynch_cvwait + 8
frame #1: 0x00000001e4a31308 libsystem_pthread.dylib`_pthread_cond_wait$VARIANT$mp + 1236
frame #2: 0x00000001b0eb1a20 libc++.1.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 24
frame #3: 0x00000001054ec4d0 NewRelic`___lldb_unnamed_symbol3677$$NewRelic + 240
frame #4: 0x00000001054eca60 NewRelic`___lldb_unnamed_symbol3699$$NewRelic + 28
frame #5: 0x00000001054ecc08 NewRelic`___lldb_unnamed_symbol3702$$NewRelic + 72
frame #6: 0x00000001e4a37c74 libsystem_pthread.dylib`_pthread_start + 288
* thread #14,name = 'AVAudioSession Notify Thread'
* frame #0: 0x00000001c87e6908 libsystem_kernel.dylib`mach_msg_trap + 8
frame #1: 0x00000001c87e5d0c libsystem_kernel.dylib`mach_msg + 72
frame #2: 0x000000019d05be00 CoreFoundation`__CFRunLoopServiceMachPort + 368
frame #3: 0x000000019d056200 CoreFoundation`__CFRunLoopRun + 1184
frame #4: 0x000000019d055818 CoreFoundation`CFRunLoopRunSpecific + 572
frame #5: 0x00000001a44dff18 AudioSession`GenericRunLoopThread::Entry(void*) + 156
frame #6: 0x00000001a44e1e84 AudioSession`CAPThread::Entry(CAPThread*) + 88
frame #7: 0x00000001e4a37c74 libsystem_pthread.dylib`_pthread_start + 288
* thread #15
* frame #0: 0x00000001c87e6908 libsystem_kernel.dylib`mach_msg_trap + 8
frame #1: 0x00000001c87e5d0c libsystem_kernel.dylib`mach_msg + 72
frame #2: 0x000000019d05be00 CoreFoundation`__CFRunLoopServiceMachPort + 368
frame #3: 0x000000019d056200 CoreFoundation`__CFRunLoopRun + 1184
frame #4: 0x000000019d055818 CoreFoundation`CFRunLoopRunSpecific + 572
frame #5: 0x000000019e2b2094 Foundation`-[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 228
frame #6: 0x0000000102f73758 Application`-[CH3_GenericChannelController keepThreadalive](self=0x0000000280f89ad0,_cmd=<unavailable>) at CH3_GenericChannelController.mm:288:37 [opt]
frame #7: 0x000000019e40edb0 Foundation`__NSThread__start__ + 848
frame #8: 0x00000001e4a37c74 libsystem_pthread.dylib`_pthread_start + 288
* thread #16
* frame #0: 0x00000001c87e6908 libsystem_kernel.dylib`mach_msg_trap + 8
frame #1: 0x00000001c87e5d0c libsystem_kernel.dylib`mach_msg + 72
frame #2: 0x000000019d05be00 CoreFoundation`__CFRunLoopServiceMachPort + 368
frame #3: 0x000000019d056200 CoreFoundation`__CFRunLoopRun + 1184
frame #4: 0x000000019d055818 CoreFoundation`CFRunLoopRunSpecific + 572
frame #5: 0x000000019e2b2094 Foundation`-[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 228
frame #6: 0x0000000102f73758 Application`-[CH3_GenericChannelController keepThreadalive](self=0x0000000280f89ad0,_cmd=<unavailable>) at CH3_GenericChannelController.mm:288:37 [opt]
frame #7: 0x000000019e40edb0 Foundation`__NSThread__start__ + 848
frame #8: 0x00000001e4a37c74 libsystem_pthread.dylib`_pthread_start + 288
* thread #48
* frame #0: 0x00000001e4a3c864 libsystem_pthread.dylib`start_wqthread
* thread #77
* frame #0: 0x00000001e4a3c864 libsystem_pthread.dylib`start_wqthread
* thread #83
* frame #0: 0x00000001e4a3c864 libsystem_pthread.dylib`start_wqthread
* thread #84
* frame #0: 0x00000001e4a3c864 libsystem_pthread.dylib`start_wqthread
(lldb)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。