Swift :- 如何在 Swift 中为 Crashlytics 制作自定义报告

Swift :- How to do the customize report for Crashlytics in Swift

我是 Crashlytics 的新手,在 Google 购买它们后我才开始使用它(又名 FirebaseCrashlytics SDK without Fabric)。我已经尝试了有关如何进行自定义报告的文档和电子邮件 Firebase,但没有得到我正在寻找的答案。此外,当我键入 Crashlytics 时,文档 Crashlytics.sharedInstance() 没有 shareInstance 弹出窗口。 这是我遇到的一次崩溃,我想使用自定义日志来帮助我找到有关崩溃的更多信息。

var sectionHeaderForSelectedDate: [ChartData] = [] //Section Headder
var cellInSectionForSelectedDate: [[ChartData]] = [] //Cell in section

override func viewDidLoad() {
    super.viewDidLoad()

    setupScreen()
}

func setupScreen() {
    if sectionHeaderForSelectedDate[0].value[0].date.convertDateToString(dateFormat: .dayOfWeekMonthDayYear) != "" {
        self.title = "\(sectionHeaderForSelectedDate[0].value[0].date.convertDateToString(dateFormat: .dayOfWeekMonthDayYear)) Sums"
    }

    tableView.delegate = self
    tableView.dataSource = self

    for (index, metricItem) in sectionHeaderForSelectedDate.enumerated() {
        tableViewData.append(cellData(opended: false, title: metricItem.name,
                                      sectionData: cellInSectionForSelectedDate[index]))
    }
    tableView.reloadData()
}

根据我的说法,崩溃发生在 setupScreen() 中,我想要一个日志来实际告诉我我的 segue 是否从另一个 viewcontroller 传递价值到我的变量(sectionHeaderForSelectedDatecellInSectionForSelectedDate)。 我该怎么做,我应该把代码放在函数的什么地方?

谢谢,如果我对 Crashlytics 的任何评论不正确,请纠正我。

那是你需要好东西的时候了FirebaseAnalytics

您可以在每个必要的事件中发送日志,如下所示:

Analytics.logEvent("Setup screen", parameters: nil)

利用eventNameparameters

在此之后,当崩溃发生并且您在此之前记录了一个事件时,您将在 LOGS 选项卡中看到此信息。

我不知道 Crashlytics 有语法正确的崩溃报告测试版。我找到它并测试了它,它现在可以工作了!我使用 Firebase 的调试示例代码来测试报告。请查看代码和屏幕截图。

FirebaseCrashlytics Customize Crash Report

override func viewDidLoad() {
    super.viewDidLoad()

    documentPicker.delegate = self
    documentPicker.allowsMultipleSelection = false

    if isFromChatBot == true {
        showIntakeOptions()
    }

    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)

    Crashlytics.crashlytics().setCustomValue("\(isFromChatBot)", forKey: "viewdeloadTest")
    Crashlytics.crashlytics().log("viewdeloadTestForCrash")
}

@IBAction func crashButtonTapped(_ sender: AnyObject) {
    Crashlytics.crashlytics().setCustomValue("test", forKey: "test1")
    Crashlytics.crashlytics().log("crashbuttonTapped")
    //Analytics.logEvent("Setup screen", parameters: nil)
    fatalError()
}