谷歌分析在 ios 崩溃前的最后一个屏幕

Posted

技术标签:

【中文标题】谷歌分析在 ios 崩溃前的最后一个屏幕【英文标题】:google analytics last screen before crash for ios 【发布时间】:2013-12-29 12:17:53 【问题描述】:

我的应用程序因信息很差而崩溃。当应用程序崩溃时,有没有办法在谷歌分析中找到最后一个屏幕名称?我正在跟踪我的应用程序中的每个屏幕。这样我就可以知道错误存在于哪个控制器中。感谢您的帮助!

编辑 崩溃报告:

NSRangeException Trace: <redacted> <redacted> <redacted> <redacted> <redacted> <redacted> <redacted> <redacted> <redacted> CFRunLoopRunSpec

【问题讨论】:

如何提供有关崩溃的信息,然后从那里继续,而不是要求一个可能根本不是解决方案的解决方案?但要回答你的问题:不,这是不可能的。 @Kerni 感谢您的帮助。我已经编辑了我的问题。 没有。您需要 ios 生成的崩溃报告并使用 Xcode 管理器对其进行符号化,或者您需要使用 3rd 方库获取正确的崩溃报告。请参阅***.com/questions/8233388/… 到目前为止,您没有提供任何有用的信息。你的“崩溃报告”是空的,你甚至没有说你是如何以及在哪里得到这个残缺的伪堆栈跟踪而没有真正的信息。 @Kerni 感谢您一直以来的帮助。我正在使用谷歌分析,像这样 [GAI sharedInstance].sendUncaughtExceptions = YES;跟踪崩溃。我在谷歌分析崩溃报告中发现了这个残缺的伪堆栈。所以我的问题是我不明白如何追踪导致这种情况的错误。 好吧,我想说那个功能当时并没有真正的帮助。 &lt;redacted&gt; 由于 Apple 的系统优化,在尝试获取设备上的某些系统符号时发生。要获得正确的符号,您需要拥有完整的 iOS 崩溃报告或使用效果更好的 3rd 方服务。 【参考方案1】:

我在我的应用中使用 Google Analytics(分析)时遇到了类似的情况。我能够从显示所有错误的崩溃和异常页面获取更多信息,方法是单击二级维度 -> 参与度 -> 屏幕名称。这显示了发生崩溃/错误的屏幕。

【讨论】:

在 Apple/XCode 的符号化和 Google Analytics 崩溃报告之间缺乏真正的桥梁,这是最好和最有用的方法。这应该是公认的答案。【参考方案2】:

您是否尝试过 GA 中的崩溃和异常分析?

您可以在此处找到有关分析的更多详细信息:https://developers.google.com/analytics/devguides/collection/ios/v2/exceptions

页面中的跟踪代码示例:

@try 
  NSArray *highScores = [self getHighScores];

@catch (NSException *exception) 
    [tracker sendException:NO // Boolean indicates non-fatal exception.
            withDescription:@"Connection timout %d: %@", connectionError, errorDescription];

并自动跟踪未捕获的异常:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
  [GAI sharedInstance].sendUncaughtExceptions = YES; // Enable 

  // ... the rest of your code, include other GAI properties you want to set.

【讨论】:

正如上面的 cmets 现在显示的那样,开发人员已经在这样做了。请参阅我上面的评论为什么机制以及您的建议对找出问题的原因没有帮助:***.com/questions/20520601/…【参考方案3】:

我遇到了类似的问题,并遇到了一个多层解决方案: Google Analytics 提供了双向异常机制。

1-> 手动跟踪:

@try 
  NSArray *myArray = [self getListOfStudents];

@catch (NSException *exception) 
    [tracker sendException:NO // Boolean indicates non-fatal exception.
            withDescription:@"Unable to connect %d: %@", connectionError, errorDescription];

2-> 自动跟踪:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions  
(NSDictionary *)launchOptions 
  [GAI sharedInstance].trackUncaughtExceptions = YES; // Enable the automatic tracking 

  // ... rest follows here.

希望对你有帮助

【讨论】:

以上是关于谷歌分析在 ios 崩溃前的最后一个屏幕的主要内容,如果未能解决你的问题,请参考以下文章

谷歌分析 SDK iOS10

谷歌浏览器崩溃的解决教程

谷歌分析行为流

将谷歌分析与 ios 集成时出错?

谷歌登录 iOS 11 崩溃

谷歌浏览器的源码分析 9