2016-10-28 3 views
0
2016-10-28 16:59:42.288 HuaYang[16997:681263] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[HYNewGiftInfoModel id]: unrecognized selector sent to instance 0x6080000f8200' 
*** First throw call stack: 
(
    0 CoreFoundation      0x000000010efa834b __exceptionPreprocess + 171 
    1 libobjc.A.dylib      0x000000010dfb821e objc_exception_throw + 48 
    2 CoreFoundation      0x000000010f017f34 -[NSObject(NSObject) doesNotRecognizeSelector:] + 132 
    3 CoreFoundation      0x000000010ef2dc15 ___forwarding___ + 1013 
    4 CoreFoundation      0x000000010ef2d798 _CF_forwarding_prep_0 + 120 
    5 HuaYang        0x000000010abdecdb HuaYang + 4332763 
    6 HuaYang        0x000000010ab7a99e HuaYang + 3922334 
    7 UIKit        0x0000000111d5edd0 -[UICollectionView _createPreparedCellForItemAtIndexPath:withLayoutAttributes:applyAttributes:isFocused:notify:] + 467 
    8 UIKit        0x0000000111d5ebf7 -[UICollectionView _createPreparedCellForItemAtIndexPath:withLayoutAttributes:applyAttributes:] + 35 
    9 UIKit        0x0000000111d640cf -[UICollectionView _updateVisibleCellsNow:] + 4803 
    10 UIKit        0x0000000111d69d63 -[UICollectionView layoutSubviews] + 313 
    11 UIKit        0x00000001114e1344 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 1237 
    12 QuartzCore       0x000000011115ccdc -[CALayer layoutSublayers] + 146 
    13 QuartzCore       0x00000001111507a0 _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 366 
    14 QuartzCore       0x000000011115061e _ZN2CA5Layer28layout_and_display_if_neededEPNS_11TransactionE + 24 
    15 QuartzCore       0x00000001110de62c _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 280 
    16 QuartzCore       0x000000011110b713 _ZN2CA11Transaction6commitEv + 475 
    17 UIKit        0x0000000111416067 _UIApplicationFlushRunLoopCATransactionIfTooLate + 206 
    18 UIKit        0x0000000111c25b30 __handleEventQueue + 5672 
    19 CoreFoundation      0x000000010ef4d311 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17 
    20 CoreFoundation      0x000000010ef32517 __CFRunLoopDoSources0 + 423 
    21 CoreFoundation      0x000000010ef31a86 __CFRunLoopRun + 918 
    22 CoreFoundation      0x000000010ef31494 CFRunLoopRunSpecific + 420 
    23 GraphicsServices     0x0000000113b50a6f GSEventRunModal + 161 
    24 UIKit        0x000000011141cf34 UIApplicationMain + 159 
    25 HuaYang        0x000000010a9514cf HuaYang + 1656015 
    26 libdyld.dylib      0x0000000112db968d start + 1 

5 HuaYang 0x000000010abdecdb HuaYang + 4332763Warum zeigt xcode die Quelldatei nicht an, während `App aufgrund einer nicht abgefangenen Ausnahme beendet wird '?

hat meine eigenen Code keine Funktion Namen, während die Systembibliothek hat. Gibt es einen xcode Build-Schalter, den ich aktivieren muss, um das Symbol anzuzeigen, während meine App abstürzt?

+1

google "desymbolicating Crashlog" – Vinodh

+0

@Vinodh könnte man als Antwort posten. – Jichao

Antwort

2

Schritte Absturzbericht von Apple zu analysieren:

  1. Kopieren Sie die Release .app-Datei, die auf dem Appstore geschoben wurde, die .dSYM-Datei, die zum Zeitpunkt der Veröffentlichung und der Crash-Bericht erstellt wurde, erhalten aus APPLE in einen FOLDER.

  2. OPEN Terminal-Anwendung und gehen Sie zu dem Ordner, die oben erstellt (mit cd Befehl)

  3. Run atos -arch armv7 -o APPNAME.app/APPNAME MEMORY_LOCATION_OF_CRASH. Der Speicherort sollte derjenige sein, bei dem die App gemäß dem Bericht abgestürzt ist.

Ex: atos -arch armv7 -o 'APPNAME.app'/'APPNAME' 0x0003b508

Dies würde zeigen Ihnen die genaue Zeile, Methodennamen, die in Crash geführt.

Ex: [classname functionName:]; -510

Symbolicating IPA

wenn wir IPA für symbolicating verwenden - nur die Erweiterung .ipa mit .zip umbenennen, entpacken Sie es, dann können wir einen Payload-Ordner erhalten, die App enthalten. In diesem Fall benötigen wir keine .dSYM-Datei.

Hinweis

Dies kann nur funktionieren, wenn die App binär gestrippt haben keine Symbole. In der Standardeinstellung haben Release-Builds die Symbole entfernt. Wir können es in den Projekt-Build-Einstellungen "Debug-Symbole beim Kopieren entfernen" in "Nein" ändern.

Weitere Details finden Sie in diesem post

2

enter image description here

Sie können "Exception-Haltepunkt ..." wählen, in Breakpoint- Panel, und wählen Sie dann "Alle Ausnahmen".

+0

Ich kenne diese Methode, aber ich möchte immer noch wissen, wie man das Symbol bekommt, wenn die App abstürzt. thx sowieso. – Jichao

Verwandte Themen