无法识别的 CFRunLoopRun 崩溃报告问题



我每天都收到很多关于CFRunLoopRun错误的崩溃报告。它出现在Xcode和iTunes Connect崩溃报告中。但是,我没有收到用户反馈报告的任何崩溃。但我不知道错误代码在哪里。当我打开 Xcode 项目的错误日志文件时,它只是指向 swift 文件中的空行。

该应用程序使用WKWebView和Firebase SDK进行分析。

如何解决此崩溃问题?

Exception Type:  EXC_CRASH (SIGKILL)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note:  EXC_CORPSE_NOTIFY
Termination Reason: Namespace SPRINGBOARD, Code 0xdead10cc
Termination Description: SPRINGBOARD, com.xxx.app was task-suspended with locked system files: | /var/mobile/Containers/Shared/AppGroup/9EAF384F-B017-4E91-BA24-1B9192E31220/database.db | ProcessVisibility: Background | ProcessState: Suspended
Triggered by Thread:  0
Thread 0 Crashed:
0   libsystem_kernel.dylib          0x000000021c3b9c60 mach_msg_trap + 8
1   CoreFoundation                  0x000000021c7c1e10 __CFRunLoopServiceMachPort + 240 (CFRunLoop.c:2615)
2   CoreFoundation                  0x000000021c7bcab4 __CFRunLoopRun + 1344 (CFRunLoop.c:2971)
3   CoreFoundation                  0x000000021c7bc254 CFRunLoopRunSpecific + 452 (CFRunLoop.c:3247)
4   GraphicsServices                0x000000021e9fbd8c GSEventRunModal + 108 (GSEvent.c:2245)
5   UIKitCore                       0x0000000249b044c0 UIApplicationMain + 216 (UIApplication.m:4353)
6   Gear                            0x0000000102591a94 main + 68 (BaseTabBarController.swift:14)
7   libdyld.dylib                   0x000000021c278fd8 start + 4
Thread 1 name:
Thread 1:
0   libsystem_kernel.dylib          0x000000021c3b9c60 mach_msg_trap + 8
1   CoreFoundation                  0x000000021c7c1e10 __CFRunLoopServiceMachPort + 240 (CFRunLoop.c:2615)
2   CoreFoundation                  0x000000021c7bcab4 __CFRunLoopRun + 1344 (CFRunLoop.c:2971)
3   CoreFoundation                  0x000000021c7bc254 CFRunLoopRunSpecific + 452 (CFRunLoop.c:3247)
4   Foundation                      0x000000021d19c04c -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 304 (NSRunLoop.m:367)
5   Foundation                      0x000000021d19bed4 -[NSRunLoop(NSRunLoop) runUntilDate:] + 100 (NSRunLoop.m:411)
6   UIKitCore                       0x0000000249bf00d4 -[UIEventFetcher threadMain] + 140 (UIEventFetcher.m:606)
7   Foundation                      0x000000021d19ac4c -[NSThread main] + 72 (NSThread.m:1212)
8   Foundation                      0x000000021d2d0e54 __NSThread__start__ + 988 (NSThread.m:1175)
9   libsystem_pthread.dylib         0x000000021c43a908 _pthread_body + 132 (pthread.c:857)
10  libsystem_pthread.dylib         0x000000021c43a864 _pthread_start + 48 (pthread.c:884)
11  libsystem_pthread.dylib         0x000000021c442dcc thread_start + 4
Thread 2 name:
Thread 2:
0   libsystem_kernel.dylib          0x000000021c3c4ed4 __psynch_cvwait + 8
1   libc++.1.dylib                  0x000000021b9cc990 std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 28 (__threading_support:278)
2   JavaScriptCore                  0x0000000223ae550c void std::__1::condition_variable_any::wait<std::__1::unique_lock<bmalloc::Mutex> >(std::__1::uni... + 104 (condition_variable:204)
3   JavaScriptCore                  0x0000000223ae9560 bmalloc::Scavenger::threadRunLoop() + 172 (condition_variable:213)
4   JavaScriptCore                  0x0000000223ae8cfc bmalloc::Scavenger::threadEntryPoint(bmalloc::Scavenger*) + 16 (Scavenger.cpp:359)
5   JavaScriptCore                  0x0000000223aea724 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, st... + 44 (type_traits:4345)
6   libsystem_pthread.dylib         0x000000021c43a908 _pthread_body + 132 (pthread.c:857)
7   libsystem_pthread.dylib         0x000000021c43a864 _pthread_start + 48 (pthread.c:884)
8   libsystem_pthread.dylib         0x000000021c442dcc thread_start + 4
Thread 3 name:
Thread 3:
0   libsystem_kernel.dylib          0x000000021c3b9c60 mach_msg_trap + 8
1   CoreFoundation                  0x000000021c7c1e10 __CFRunLoopServiceMachPort + 240 (CFRunLoop.c:2615)
2   CoreFoundation                  0x000000021c7bcab4 __CFRunLoopRun + 1344 (CFRunLoop.c:2971)
3   CoreFoundation                  0x000000021c7bc254 CFRunLoopRunSpecific + 452 (CFRunLoop.c:3247)
4   CFNetwork                       0x000000021cdddc88 -[__CoreSchedulingSetRunnable runForever] + 208 (CoreSchedulingSet.mm:1365)
5   Foundation                      0x000000021d19ac4c -[NSThread main] + 72 (NSThread.m:1212)
6   Foundation                      0x000000021d2d0e54 __NSThread__start__ + 988 (NSThread.m:1175)
7   libsystem_pthread.dylib         0x000000021c43a908 _pthread_body + 132 (pthread.c:857)
8   libsystem_pthread.dylib         0x000000021c43a864 _pthread_start + 48 (pthread.c:884)
9   libsystem_pthread.dylib         0x000000021c442dcc thread_start + 4
Thread 4:
0   libsystem_pthread.dylib         0x000000021c442dc0 start_wqthread + 0 (pthread_dependency.c:103)
Thread 5:
0   libsystem_pthread.dylib         0x000000021c442dc0 start_wqthread + 0 (pthread_dependency.c:103)
Thread 0 crashed with ARM Thread State (64-bit):
x0: 0x0000000010004005   x1: 0x0000000007000806   x2: 0x0000000000000000   x3: 0x0000000000000c00
x4: 0x0000000000002a03   x5: 0x00000000ffffffff   x6: 0x0000000000000000   x7: 0x0000000000000403
x8: 0x00000000fffffbbf   x9: 0x0000000007000000  x10: 0x0000000007000000  x11: 0x000000b2f51efc80
x12: 0x00000000016e3600  x13: 0x000000000003757e  x14: 0x000000000004b400  x15: 0x0004b40000000000
x16: 0xffffffffffffffe1  x17: 0x0000000000000001  x18: 0x0000000000000000  x19: 0x0000000000000000
x20: 0x00000000ffffffff  x21: 0x0000000000002a03  x22: 0x0000000000000c00  x23: 0x000000016d872d30
x24: 0x0000000007000806  x25: 0x0000000000000000  x26: 0x0000000007000806  x27: 0x0000000000000c00
x28: 0x0000000000000001   fp: 0x000000016d872c20   lr: 0x000000021c3b90e8
sp: 0x000000016d872bd0   pc: 0x000000021c3b9c60 cpsr: 0x60000000

好吧,根据我在这件事上的有限经验,似乎iOS正在尝试在后台挂起您的应用程序,但由于您正在运行一些后台进程而未能这样做。然后,由于您尚未在应用程序中启用后台处理功能,因此iOS强制杀死它,从而导致显示错误。

我建议仔细查看您的应用程序,以查看是否有任何内存泄漏或长时间运行的进程。应通过将它们的使用与应用程序生命周期相关联来解决这些问题(或考虑启用后台处理)。有关 ARC 的知识、保留周期和捕获列表的使用对于内存问题非常重要)。

锁定的文件表示与 Firebase 数据库有关。也许当您的应用在后台时,您没有清除与 Firebase 数据库的连接,等等......

这都是猜想。像这样的问题非常特定于应用程序,因为您做错了什么,并且您是识别它们的最佳人选,因为您对代码了如指掌。

编辑:我也希望 com.xxx.app 确实是您的应用程序,而不是其他应用程序。

最新更新