iOS整合Fabric & Crashlytics (2)

weixin_34050427發表於2018-01-08
上一篇我們整合了環境,這一篇主要將如何使用Crashlytics 進行資料統計.

1.首先我們嘗試著製造一次崩潰

直接上程式碼

import UIKit
import Crashlytics

class ViewController: UIViewController { 
    override func viewDidLoad() { 
        super.viewDidLoad() // Do any additional setup after loading the view,    typically from a nib.
        let button = UIButton(type: .roundedRect) button.frame = CGRect(x: 20, y: 50, width: 100, height: 30) button.setTitle("Crash", for: [])       
        button.addTarget(self, action: #selector(self.crashButtonTapped(_:)), for: .touchUpInside) view.addSubview(button)</a>
     }

    @IBAction func crashButtonTapped(_ sender: AnyObject) { 
         Crashlytics.sharedInstance().crash() 
    }
}

所以我們點選了按鈕之後,就會觸發崩潰事件.

[注] :但是,在崩潰之後,崩潰資訊並不會立刻上傳到Fabric!

我們需要在網路正常的狀態下,重新啟動App. 這樣,崩潰資訊就會成功上傳到Fabric平臺. 過幾分鐘,你就可以在Fabirc平臺看到崩潰資訊了.

2.然後讓我們看一下崩潰資訊

會看到類似圖中的崩潰資訊. 可以看到Fabric 這個統計介面還是做得很全面的. 崩潰/異常的增長率,影響到的使用者,以及每天的情況,都有統計. 還可以對issue 進行過濾.
各個issue出現的版本範圍、次數,也都有統計.

5457615-ede82df4a3116d04.png

點選具體的issue條目. 我們會進入該條issue的分析介面.

上部分是一些資料的統計


5457615-881305339fea28cf.png
image.png
下部分是我們關注的,問題是如何產生的呢?

從這裡可以看到具體的堆疊資訊,可以發現是由於AnimationAlertController.swift 的第35行的showWithAnimation方法出現了問題導致的崩潰.

這時我們就可以去程式碼中看一看,是哪裡出現了漏洞.
當然,你也可以將這份log download下來,仔細分析.

5457615-a46b02d7a4836240.png
image.png

3.收集使用者資訊

點選上圖中的 View all sessions, 還可以查到具體的每一個崩潰的資訊,如果你收集了使用者資訊的話,其中就會包含使用者的資訊. 因為有很多問題是需要使用者的ID來進行追蹤的,所以收集使用者資訊還是很有必要的.

那如何收集使用者資訊呢?

上程式碼~

        Crashlytics.sharedInstance().setUserEmail("user@fabric.io")
        Crashlytics.sharedInstance().setUserIdentifier("12345")
        Crashlytics.sharedInstance().setUserName("Test User")

只要在Crashlytics 初始化完成後

        Fabric.with([Crashlytics()])

呼叫上面的三行程式碼就可以啦~
是不是很容易用~

那今天先寫到這裡,明天會繼續和大家講怎麼在Crashlytics中 加一些自定義的Log資訊.

晚安~

相關文章