pixelscreen
pixelscreen

Reputation: 1975

Google Analytics 3.12 crashes on iOS

I'm new to iOS development and I have a crash on my iOS app (developed by vendor). I have learnt to read logs and this is what I see:

2015-06-15 19:00:51.628 my_app[2540:113596] WARNING: GoogleAnalytics 3.12 void GAIUncaughtExceptionHandler(NSException *) (GAIUncaughtExceptionHandler.m:48): Uncaught exception: *** -[__NSArrayI objectAtIndex:]: index 0 beyond bounds for empty array
2015-06-15 19:00:51.636 my_app[2540:113791] INFO: GoogleAnalytics 3.12 -[GAIAnalyticsPropertiesStore propertyRecordForTrackingId:] (GAIAnalyticsPropertiesStore.m:464): Record for tracking id my_tracking_id not found
2015-06-15 19:00:51.640 my_app[2540:113791] VERBOSE: GoogleAnalytics 3.12 -[GAIBatchingDispatcher persist:] 

I want to know if Google Analytics is causing the crash or something else that is triggering the crash. The API calls are fine and other parts of the app are working fine.

EDIT Additonal stacktrace

*** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayI objectAtIndex:]: index 0 beyond bounds for empty array'
*** First throw call stack:
(
    0   CoreFoundation                      0x000000010656cc65 __exceptionPreprocess + 165
    1   libobjc.A.dylib                     0x0000000106205bb7 objc_exception_throw + 45
    2   CoreFoundation                      0x000000010646317e -[__NSArrayI objectAtIndex:] + 190
    3   my_app                            0x0000000105396095 -[PromotionDetailViewController tableView:cellForRowAtIndexPath:] + 4213
    4   UIKit                               0x00000001076faa28 -[UITableView _createPreparedCellForGlobalRow:withIndexPath:willDisplay:] + 508
    5   UIKit                               0x00000001076d9248 -[UITableView _updateVisibleCellsNow:isRecursive:] + 2853
    6   UIKit                               0x00000001076ef8a9 -[UITableView layoutSubviews] + 210
    7   UIKit                               0x0000000107679a2b -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 536
    8   QuartzCore                          0x00000001073d1ec2 -[CALayer layoutSublayers] + 146
    9   QuartzCore                          0x00000001073c66d6 _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 380
    10  QuartzCore                          0x00000001073c6546 _ZN2CA5Layer28layout_and_display_if_neededEPNS_11TransactionE + 24
    11  QuartzCore                          0x0000000107332886 _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 242
    12  QuartzCore                          0x0000000107333a3a _ZN2CA11Transaction6commitEv + 462
    13  QuartzCore                          0x00000001073340eb _ZN2CA11Transaction17observer_callbackEP19__CFRunLoopObservermPv + 89
    14  CoreFoundation                      0x000000010649fca7 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23
    15  CoreFoundation                      0x000000010649fc00 __CFRunLoopDoObservers + 368
    16  CoreFoundation                      0x0000000106495a33 __CFRunLoopRun + 1123
    17  CoreFoundation                      0x0000000106495366 CFRunLoopRunSpecific + 470
    18  GraphicsServices                    0x0000000109f4ca3e GSEventRunModal + 161
    19  UIKit                               0x00000001075f9900 UIApplicationMain + 1282
    20  my_app                            0x00000001053de35f main + 111
    21  libdyld.dylib                       0x0000000108a15145 start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException

Upvotes: 1

Views: 2960

Answers (2)

stephenspann
stephenspann

Reputation: 1843

Just ran into a similar issue, and have concluded that it is not Google Analytics causing the crash. Google Analytics is just merely wrapping around another crash for reporting purposes.

If you change the following setting in your App Delegate's didFinishLaunchingWithOptions: (or other location), the crash will appear as a normal error in the XCode console:

GAI *gai = [GAI sharedInstance]; gai.trackUncaughtExceptions = NO;

Upvotes: 5

9to5ios
9to5ios

Reputation: 5545

One way to debug this issue is to add a Symbolic Breakpoint on objectAtIndex: This may result in many hits to objectAtIndex: before the debugger hits the one you're after but it's guaranteed to find it.

Steps in Xcode 4:

View > Navigators > Breakpoint Navigator
click '+' and choose Add Symbolic Breakpoint in the pop-up
type in "objectAtIndex:" in the Symbol text field and click Done

at runtime, if you can't tell which objectAtIndex: you're hitting, move the slider at the bottom of the Debug Navigator all the way to the right.

Upvotes: 1

Related Questions