2015-11-27 76 views
0

由於解析崩潰報告正在貶值,因此我們正在轉向Google Analytics(分析)。 我遵循指南併成功接收視圖跟蹤和例外報告。無法收到崩潰報告

這裏是我的設置怎麼GA

// Configure tracker from GoogleService-Info.plist. 
     var configureError:NSError? 
     GGLContext.sharedInstance().configureWithError(&configureError) 
     assert(configureError == nil, "Error configuring Google services: \(configureError)") 

     // Optional: configure GAI options. 
     let gai = GAI.sharedInstance() 
     gai.trackerWithTrackingId("UA-XXXXXX-1") 
     gai.trackUncaughtExceptions = true // report uncaught exceptions 
     gai.dispatchInterval = 1 
     gai.defaultTracker.allowIDFACollection = true 

     #if DEBUG 
      gai.logger.logLevel = GAILogLevel.Verbose // remove before app release 
     #endif 

我試圖使由碰撞(在AppDelegate.swift didFinishLaunchingWithOptions):

delay(20.0) {() ->() in 
    let _ = [String]()[10]; 
} 

而且我不能得到任何崩潰報告來自GA儀表板。

我試過把這條線移到IBAction,但失敗了。

我的測試步驟:

  1. 在設備調試 - >(20S) - >崩潰

  2. 調試設備上的第2次 - >(20S) - >崩潰

  3. 運行沒有調試的應用程序 - >(20s) - >崩潰

  4. 無調試運行應用程序 - >(20s) - >崩潰

回答

1

事實證明,Google Analytics只支持未捕獲的Objective-C異常的報告。它不報告Swift拋出。下面創建一個斯威夫特擲(而不是由GA報道):

let crashArray:Array = [0] 
    crashArray[1] 

下不創建一個Objective-C的異常,並通過GA報道:

let array = NSArray() 
    let _ = array.objectAtIndex(99) 

一些有用的信息在這裏.. 。

How should I use NSSetUncaughtExceptionHandler in Swift

我們可以通過使用下面的命令(即,從一個catch內)迫使一個Objective-C例外從內夫特。

let error = NSError(domain: "Some error.", code: 0, userInfo: nil) 
    NSException.raise("Exception", format:"Error: %@", arguments:getVaList([error ?? "nil"])) 

我沒有辦法找到自動捕獲所有拋出並將它們轉換爲Objective-C異常的方法。

+0

同意。這就是爲什麼我搬到crashlytics。與GA相比,他們確實能夠迅速提供崩潰報告。 – Horst