Google Analytics 3.12 在 iOS 上崩溃

pix*_*een 1 xcode google-analytics objective-c ios

我是 iOS 开发的新手,我的 iOS 应用程序(由供应商开发)崩溃了。我学会了阅读日志,这就是我所看到的:

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:] 
Run Code Online (Sandbox Code Playgroud)

我想知道是 Google Analytics 导致崩溃还是其他原因导致崩溃。API 调用正常,应用程序的其他部分运行正常。

编辑 附加堆栈跟踪

*** 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
Run Code Online (Sandbox Code Playgroud)

spa*_*mic 5

刚刚遇到了类似的问题,并得出结论认为不是Google Analytics 导致了崩溃。谷歌分析只是为了报告目的而包装另一次崩溃。

如果您在 App Delegate 的didFinishLaunchingWithOptions:(或其他位置)更改以下设置,则崩溃将在 XCode 控制台中显示为正常错误:

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