【问题标题】:Track crash using Google Analytics iOS使用 Google Analytics iOS 跟踪崩溃
【发布时间】:2013-08-29 06:29:50
【问题描述】:

您好
我在我的iPhone app 之一中使用Google Analytics。我正在跟踪应用安装、屏幕访问和点击事件。
现在,我想在应用程序中跟踪 crashes & exceptions 的原因及其位置(按位置,我的意思是方法名称、行号或其他任何内容)。我已阅读 google 提供的文档,但没有得到任何有用的信息。
谁能帮我解决这个问题?任何例子都将不胜感激。


更新:- 在这里,我附上 GA 仪表板的屏幕截图链接。

【问题讨论】:

    标签: iphone ios crash google-analytics


    【解决方案1】:

    您可以发送回溯(已经符号化)。 我设置了 sendUncaughtExceptions = FALSE 并手动发送。

    id tracker = [[GAI sharedInstance] defaultTracker];
    
    NSString * model = [[UIDevice currentDevice] model];
    NSString * version = [[UIDevice currentDevice] systemVersion];
    NSArray * backtrace = [exception callStackSymbols];
    NSString * description = [NSString stringWithFormat:@"%@.%@.%@.Backtrace:%@",
                              model,
                              version,
                              exception.description,
                              backtrace];
    
    [tracker send:[[GAIDictionaryBuilder
                    createExceptionWithDescription:description  // Exception description. May be truncated to 100 chars.
                    withFatal:NO] build]];     
    

    (型号和版本可选)

    回溯会有,但最重要的类和方法将是象征性的(崩溃发生的地方),你会知道在哪里

    ** 编辑 **

    如何处理异常

    1. Detail explanation
    2. 下载示例“UncaughtExceptions.zip”
    3. UncaughtExceptionHandler.m 上,在方法“handleException:(NSException *)exception”内部,你可以做你想做的事,在我的例子中,我有其他方法验证异常,然后发送到 GAI

    【讨论】:

    • 你是如何处理异常的?意味着我不想在每个函数中都写 try-catch。
    • 我正在使用这个:cocoawithlove.com/2010/05/… - 下载示例“UncaughtExceptions.zip”并在“handleException:(NSException *)exception”中你可以调用你想要的
    【解决方案2】:

    我还没有使用 Google Analytics 崩溃报告功能,但found this 可能会有所帮助。

    您可以使用此代码让 Google Analytics(v2) 报告未捕获的异常,即崩溃

    - (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.
    }
    

    我认为这些不会是符号化的崩溃报告,因为设备无法对其进行符号化。因此,您可能必须自己符号化收到的崩溃报告,以了解导致此崩溃的代码中的行号。

    查看Where can I view the Google Analytics iOS crash logs?

    参考:Symbolicating iPhone App Crash Reports

    希望有帮助!

    【讨论】:

    • 感谢您的回答。但是,我怎样才能用谷歌分析来实现这个(象征性的崩溃报告)?我必须跟踪应用商店中应用的崩溃情况。
    • @Piyush 你只需要在你的应用程序application:didFinishLaunchingWithOptions:函数中添加上面的代码行。如果您的应用已在应用商店上架,您可能需要添加此功能并进行更新。
    • @Piyush 另外,在应用商店更新 IPA 时,请保留 .dSYM 文件,因为它是表示您收到的崩溃报告所必需的。
    • 我在 application:didFinishLaunchingWithOptions 函数中写了上面这行。但是,我想跟踪应用程序崩溃的行(或函数)。我在“崩溃和异常”选项卡中收到此消息:-NSInvalidArgumentException Trace: -[NSObject(NSObject) doesNotRecognizeSelector:] ___forwarding___ _CF_forwarding_prep_0 CFStringGetLength _CPCreateUT。现在,我想知道这次崩溃发生在哪里以及什么原因?
    • @Piyush 您需要检查 GA 仪表板上的描述字段,该字段将具有堆栈跟踪。这将显示您的应用程序中导致崩溃的函数。
    【解决方案3】:

    斯威夫特 3

        GAI.sharedInstance().trackUncaughtExceptions = true
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-19
      相关资源
      最近更新 更多