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 + 4332763

My own code has no function name, while the system library has. Is there any xcode build switch I need to turn on to show the symbol while my app crash?

Jichao
  • 40,341
  • 47
  • 125
  • 198

2 Answers2

2

enter image description here

You can choose "Exception Breakpoint..." in Breakpoint panel, and then choose "All exceptions".

smoothdvd
  • 2,389
  • 4
  • 20
  • 25
  • i do know this method, but i still want to know how to get the symbol when the app crash. thx anyway. – Jichao Oct 28 '16 at 09:18
2

Steps to analyze crash report from apple:

  1. Copy the release .app file which was pushed to the appstore, the .dSYM file that was created at the time of release and the crash report receive from APPLE into a FOLDER.

  2. OPEN terminal application and go to the folder created above (using cd command)

  3. Run atos -arch armv7 -o APPNAME.app/APPNAME MEMORY_LOCATION_OF_CRASH. The memory location should be the one at which the app crashed as per the report.

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

This would show you the exact line, method name which resulted in crash.

Ex: [classname functionName:]; -510

Symbolicating IPA

if we use IPA for symbolicating - just rename the extention .ipa with .zip , extract it then we can get a Payload Folder which contain app. In this case we don't need .dSYM file.

Note

This can only work if the app binary does not have symbols stripped. By default release builds stripped the symbols. We can change it in project build settings "Strip Debug Symbols During Copy" to NO.

More details see this post

Community
  • 1
  • 1
Vinodh
  • 5,262
  • 4
  • 38
  • 68