2016-11-21 1 views
0

Ich bin NSLogger in meine iOS-App integrieren, fand ich, dass nach dem Integrieren NSLogger, Meine App einfach einzufrieren, vor allem, wenn es kein Internet gibt. Ich habe den Code unten zu main.m hinzugefügt, jemand weiß warum?NSLogger in iOS Freeze meine App

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

ist das Crash-Protokoll:

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

Symbolisieren Sie Ihren Absturzbericht, damit Sie genau sehen können, wo in Ihrer App er abstürzt. – rmaddy

+0

Und zeigen Sie den Code, der abstürzt. – matt

Antwort

0

Zunächst sollten Sie nicht den Code zu main.m hinzufügen. Sehen Sie sich diesen Code in Ihrem Anwendungsdelegaten an.

Zweitens ist der Absturz 0x8badf00d ein bekannter Fehler, der dadurch verursacht wird, dass Ihre Anwendung zu lange dauert. Dies kann daran liegen, dass Sie den Log-Start-Code an der falschen Stelle haben, wie ich oben gesagt habe. Oder es könnte etwas anderes sein.

In der Regel kann alles, was Sie beim Start Ihrer Anwendung haben, dauern, sollte entweder verzögert oder auf einem Hintergrund-Thread platziert werden. Der Anwendungsstart sollte den Benutzer so schnell wie möglich auf den Startbildschirm Ihrer App bringen.

+0

danke ich werde es von Haupt zu Delegieren bewegen. aber der Absturz nicht beim Start passiert, es passiert irgendwann während Benutzer die App betreibt –

Verwandte Themen