iOS应用程序上的DiskCookies崩溃是什么意思?

时间:2019-04-19 08:39:58

标签: ios objective-c crash-reports

我使用Fabric登录iOS应用上的崩溃。 今天,我遇到了一些与DiskCookies相关的崩溃。我真的不知道这意味着什么。

Crashed: diskcookies
0  CoreFoundation                 0x1bd00136 CFNotificationCenterPostNotification + 53
1  libsystem_malloc.dylib         0x1b5d9cf3 szone_malloc_should_clear + 3240
2  CFNetwork                      0x1c44a359 DiskCookieStorage::writeFileCompletely0(DiskCookieStorage*, FilePathStat*, MemoryCookies const*, __CFData const*, TracerData*, int) + 634
3  CFNetwork                      0x1c44a49d DiskCookieStorage::_asyncWriteFileCompletely(void*) + 174
4  libdispatch.dylib              0x1b4a1783 _dispatch_client_callout + 22
5  libdispatch.dylib              0x1b4ada35 _dispatch_barrier_sync_f_invoke + 50
6  CFNetwork                      0x1c44b09d DiskCookieStorage::syncStorageWithCompletionLocked(unsigned char, void () block_pointer) + 2220
7  CFNetwork                      0x1c44277b ___CFHTTPCookieStorageFlushCookieStores_block_invoke + 86
8  CoreFoundation                 0x1bcf5447 __CFDictionaryApplyFunction_block_invoke + 20
9  CoreFoundation                 0x1bce0634 CFBasicHashApply + 120
10 CoreFoundation                 0x1bce94c1 CFDictionaryApplyFunction + 152
11 CFNetwork                      0x1c44270f _CFHTTPCookieStorageFlushCookieStores + 140
12 libsystem_c.dylib              0x1b53720d __cxa_finalize_ranges + 290
13 libsystem_c.dylib              0x1b4f61b3 exit + 12
14 Comico                         0x97a74f UnityGetGLViewController + 4756906
15 Comico                         0x97a265 UnityGetGLViewController + 4755648
16 Comico                         0x980a6b UnityGetGLViewController + 4782278
17 Comico                         0x96dfb5 UnityGetGLViewController + 4705808
18 Comico                         0x96da59 UnityGetGLViewController + 4704436
19 Comico                         0x200fe3 -[AppDelegate setUpAppGuardWithUserID:] (AppDelegate.m:1303)
20 Comico                         0x1ff967 __36-[AppDelegate dologinInCallLoginAPI]_block_invoke (AppDelegate.m:1026)
21 Comico                         0x13f69b __42-[NCLoginRAPIManager loginWithCompletion:]_block_invoke (NCLoginRAPIManager.m:97)
22 Comico                         0xde19f -[NCRAPICompletion performBlockWithOperation:] (NCRAPICompletion.m:94)
23 CoreFoundation                 0x1bd06323 -[NSArray makeObjectsPerformSelector:withObject:] + 218
24 Comico                         0x3adf0d -[NCRAPIOperationRegister performCompletionBlockOfOperation:] (NCRAPIOperationRegister.m:67)
25 Comico                         0x251ce1 __51-[NCRAPIManager callRAPIWithAPIRequest:completion:]_block_invoke_2 (NCRAPIManager.m:65)
26 libdispatch.dylib              0x1b4a1797 _dispatch_call_block_and_release + 10
27 libdispatch.dylib              0x1b4a1783 _dispatch_client_callout + 22
28 libdispatch.dylib              0x1b4a5d05 _dispatch_main_queue_callback_4CF + 902
29 CoreFoundation                 0x1bd8fd69 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 8
30 CoreFoundation                 0x1bd8de19 __CFRunLoopRun + 848
31 CoreFoundation                 0x1bce11af CFRunLoopRunSpecific + 470
32 CoreFoundation                 0x1bce0fd1 CFRunLoopRunInMode + 104
33 GraphicsServices               0x1d48bb41 GSEventRunModal + 80
34 UIKit                          0x21069a53 UIApplicationMain + 150
35 Comico                         0x20dc39 main (main.m:19)
36 libdyld.dylib                  0x1b4ce4eb start + 2

我相信有人正在尝试修改网络库放置数据的路径。是否有人对此崩溃有其他理论或经验?

1 个答案:

答案 0 :(得分:1)

您在此处发布的堆栈跟踪记录是我的理论。

  • 第14帧表明您有一个Unity应用程序,并且它正在运行OpenGL。
  • 第13帧真的很有趣。似乎Unity UnityGetGLViewController(我假设不是您编写的)已调用exit。这是令人惊讶的行为,但是它为堆栈的其余部分提供了很多线索。
  • 第12-2帧看起来像是网络堆栈在应用程序退出(由UnityGetGLViewController触发)上正在做一些工作。似乎只是将一些与cookie相关的内容写入磁盘。我不会为此担心。
  • 第0帧和第1帧确实令人怀疑。我很难相信malloc调用CoreFoundation。如果我不得不猜测,我会说第0帧是正确的,并且第1帧被错误地标记或错误地解卷。

在iOS应用程序中调用exit是非常不寻常的。尽管从技术上讲它是API,但我怀疑它已经过严格测试。我敢打赌,与exit的使用有关的指针和/或对象生命周期存在一些悬而未决的问题,您将在此处看到它。

我要做的是看看Unity是否有关于UnityGetGLViewController的任何文档,调用exit。我也要和Fabric人员核对有关第1帧和第0帧的信息。我看不出这两种方法如何正确。最后,我可能会考虑与Apple开一个bug。但是,Apple通常不喜欢查看非Apple崩溃报告。因此,最后一个可能是一个长镜头。