2016-11-21 79 views
0

我將NSLogger集成到我的iOS應用程序中,發現在集成NSLogger後,我的應用程序變得很容易凍結,尤其是當沒有互聯網時。 我在下面的代碼添加到main.m,任何人都知道爲什麼?NSLogger在iOS中凍結我的應用程序

Logger *logger = LoggerGetDefaultLogger(); 
LoggerSetOptions(logger, 
        kLoggerOption_BufferLogsUntilConnection | 
        kLoggerOption_CaptureSystemConsole | 
        kLoggerOption_BrowseBonjour | 
        kLoggerOption_BrowseOnlyLocalDomain); 
LoggerSetupBonjour(logger, NULL, NULL)); 

這是崩潰日誌:

Incident Identifier: 5278EF6A-1128-49D6-B31A-B6AA03AC856C 
CrashReporter Key: 848d8e4999dd36db808023480dc660a86c173fee 
Hardware Model:  iPad6,7 
Process:    My App [386] 
Path:    /private/var/containers/Bundle/Application/579502B0-20F3-4C83-82F0-ED50BC79C831/My App.app/My App 
Identifier:   com.xiang.My App 
Version:    1140 (1.0) 
Code Type:   ARM-64 (Native) 
Role:    Foreground 
Parent Process:  launchd [1] 
Coalition:   com.xiang.My App [490] 


Date/Time:   2016-11-18 13:41:18.1326 +0900 
Launch Time:   2016-11-18 13:33:07.3810 +0900 
OS Version:   iPhone OS 10.1.1 (14B100) 
Report Version:  104 

Exception Type: EXC_CRASH (SIGKILL) 
Exception Codes: 0x0000000000000000, 0x0000000000000000 
Exception Note: EXC_CORPSE_NOTIFY 
Termination Reason: Namespace SPRINGBOARD, Code 0x8badf00d 
Triggered by Thread: 0 

Filtered syslog: 
None found 

Thread 0 name: Dispatch queue: com.apple.main-thread 
Thread 0 Crashed: 
0 libsystem_kernel.dylib   0x000000018e8d9948 writev + 8 
1 CoreFoundation     0x000000018f909cc0 _CFLogvEx2Predicate + 452 
2 CoreFoundation     0x000000018f909eec _CFLogvEx3 + 408 
3 Foundation      0x00000001903f0454 _NSLogv + 132 
4 Foundation      0x000000019031735c NSLog + 32 
5 My App       0x00000001000511a4 0x100030000 + 135588 
6 My App       0x0000000100050f2c 0x100030000 + 134956 
7 My App       0x000000010008b18c 0x100030000 + 373132 
8 My App       0x0000000100089530 0x100030000 + 365872 
9 UIKit       0x00000001958a7dc0 -[UITableView _selectRowAtIndexPath:animated:scrollPosition:notifyDelegate:] + 728 
10 UIKit       0x0000000195958b34 -[UITableView _userSelectRowAtPendingSelectionIndexPath:] + 268 
11 UIKit       0x0000000195a0bd5c _runAfterCACommitDeferredBlocks + 292 
12 UIKit       0x00000001959fdb10 _cleanUpAfterCAFlushAndRunDeferredBlocks + 560 
13 UIKit       0x000000019576c854 _afterCACommitHandler + 168 
14 CoreFoundation     0x000000018f8d37dc __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 32 
15 CoreFoundation     0x000000018f8d140c __CFRunLoopDoObservers + 372 
16 CoreFoundation     0x000000018f8d189c __CFRunLoopRun + 1024 
17 CoreFoundation     0x000000018f800048 CFRunLoopRunSpecific + 444 
18 GraphicsServices    0x0000000191286198 GSEventRunModal + 180 
19 UIKit       0x00000001957e52fc -[UIApplication _run] + 684 
20 UIKit       0x00000001957e0034 UIApplicationMain + 208 
21 GroundStation Pro    0x00000001000f27b0 0x100030000 + 796592 
22 libdyld.dylib     0x000000018e7e45b8 start + 4 
+1

Symbolicate你的崩潰報告,所以你可以看到你的應用程序崩潰的確切位置。 – rmaddy

+0

並顯示崩潰的代碼。 – matt

回答

0

首先你不應該添加代碼main.m。在你的應用程序委託中查看這樣的代碼。

其次,0x8badf00d崩潰是由於您的應用程序啓動時間太長而導致的已知錯誤。這可能是因爲你的日誌開始代碼位於錯誤的位置,正如我上面所說的。或者它可能是別的。

作爲一般規則,任何在啓動應用程序時所需的時間可能都需要一段時間,應該延遲或放在背景線程上。應用程序啓動應儘快讓用戶進入應用程序的主屏幕。

+0

謝謝我將它從主要移交給代表。但是崩潰不是在啓動時發生的,它發生在用戶操作應用程序的某個時候 –