0

When my app crashes in simulator or on adhoc version of my app, the error log is detailed and clear in terms of where the app crashed. However once it is submitted to the app store and my users are using it, I am finding that error logs which are logged by google analytics and also by my own method are redacting so much that I cannot tell where the error is occuring.

How I ensure the full error logs are generated and submitted in the ios prod app?

-[NSNull length]: unrecognized selector sent to instance 0x19a1f1fe0

*****REASON*****

-[NSNull length]: unrecognized selector sent to instance 0x19a1f1fe0

*****NAME*****

NSInvalidArgumentException

*****STACK TRACE*****

0 CoreFoundation 0x000000018d2ab11c + 160****1 libobjc.A.dylib 0x00000001997b41fc objc_exception_throw + 60****2 CoreFoundation
0x000000018d2afdb4 + 0****3 CoreFoundation
0x000000018d2adae0 + 912****4 CoreFoundation
0x000000018d1cd78c _CF_forwarding_prep_0 + 92****5 UIKit
0x000000019027df68 + 120****6 muzmatch
0x000000010019a138 muzmatch + 1302840****7 UIKit
0x0000000190274658 + 576****8 UIKit
0x00000001902743dc + 32****9 muzmatch
0x00000001001aadb8 muzmatch + 1371576****10 muzmatch
0x000000010010a470 muzmatch + 713840****11 libdispatch.dylib
0x0000000199d8c014 + 24****12 libdispatch.dylib
0x0000000199d8bfd4 + 16****13 libdispatch.dylib
0x0000000199d8f1dc _dispatch_main_queue_callback_4CF + 336****14 CoreFoundation 0x000000018d26addc + 12****15 CoreFoundation 0x000000018d26911c + 1452****16 CoreFoundation
0x000000018d1a9dd0 CFRunLoopRunSpecific + 452****17 GraphicsServices 0x0000000192e91c0c GSEventRunModal + 168****18 UIKit
0x00000001902dafc4 UIApplicationMain + 1156****19 muzmatch
0x00000001001ac608 muzmatch + 1377800****20 libdyld.dylib
0x0000000199da7aa0 + 4

I am creating the error log and saving it to the DB here:

 NSString *message=[exception debugDescription];
    message = [message stringByAppendingString:@"\n\n*****REASON*****\n\n"];
    message = [message stringByAppendingString:[exception reason]];
    message = [message stringByAppendingString:@"\n\n*****NAME*****\n\n"];
    message = [message stringByAppendingString:[exception name]];
    message = [message stringByAppendingString:@"\n\n*****STACK TRACE*****\n\n"];
    NSArray *ar = [exception callStackSymbols];

    message = [message stringByAppendingString:[ar componentsJoinedByString:@"****"]];

    id tracker = [[GAI sharedInstance] defaultTracker];

    [tracker send:[[GAIDictionaryBuilder createExceptionWithDescription:message withFatal:@YES] build]];
shaz
  • 1
  • 1

1 Answers1

0

You should have the image list in the report. You can use atos to symbolicate your log:

xcrun -sdk iphoneos atos -arch arm64 -o [/path/to/your/symbol/rich/file/or/dSyms] -l [load address of the image] [address]
Jeremy Huddleston Sequoia
  • 22,938
  • 5
  • 78
  • 86
  • sorry - im a complete newbie here... I am creating the error log above (edited post) in the app itself (it saves this to my DB)...how do I interpret this? is there any way the error generated itself can record the symbolicate version directly? – shaz Mar 19 '15 at 10:27