iOS集成Fabric & Crashlytics (2
2018-01-08 本文已影响202人
Lucky闪闪星
上一篇我们集成了环境,这一篇主要将如何使用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出现的版本范围、次数,也都有统计.
点击具体的issue条目. 我们会进入该条issue的分析界面.
上部分是一些数据的统计
image.png
下部分是我们关注的,问题是如何产生的呢?
从这里可以看到具体的堆栈信息,可以发现是由于AnimationAlertController.swift 的第35行的showWithAnimation方法出现了问题导致的崩溃.
这时我们就可以去代码中看一看,是哪里出现了漏洞.
当然,你也可以将这份log download下来,仔细分析.
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信息.
晚安~