如何使用 Fabric SDK 在 Swift iOS 应用程序中强制崩溃?

How do I force a crash in Swift iOS app with Fabric SDK?

我能找到的只有 Is there a quick way to force a crash?,它表示:

[[Crashlytics sharedInstance] crash];

我认为 Swift 会是

Crashlytics.sharedInstance.crash()

但这似乎不存在。 (也许文档已经过时并且不再适用,因为 Fabric 吞噬了 Crashlytics?)

我看到有一个 Crashlytics.crash(self:Crashlytics) ...没关系,friggin XCode 的完成对我来说总是失败的。请参阅下面的答案。

(如果它在您的 AppDelegate 以外的文件中,您将需要 import Crashlytics,然后只需执行 Crashlytics.sharedInstance().crash()

在 firebase 中创建项目和应用程序

如果您有现有的 firebase 项目或创建 firebase 项目并在 firebase 控制台中创建新应用程序,请在 firebase 控制台中添加一个新的 iOS 应用程序。

将 Firebase 添加到 iOS 应用

首先,在第 1 步中,通过在向 firebase 创建 iOS 应用程序时添加包标识符来注册您的应用程序。在第 2 步中,下载配置文件 GoogleService-Info.plist 将其添加到您的工作区,如下图所示。

通过 CocoaPods 添加 Crashlytics SDK

首先,将 Crashlytics SDK 框架文件添加到您的项目中。对于大多数项目,最简单的方法是添加 Crashlytics CocoaPods。

  pod 'Firebase/Core'
  pod 'Fabric', '~> 1.7.2'
  pod 'Crashlytics', '~> 3.9.3'

测试您的实施

启用 Crashlytics 调试模式:为了在调试模式下启用 crashlytics,我们需要在 AppDelegate.swift.

中将 Fabric.sharedSDK().debug 模式设置为 true
import UIKit
import Firebase
import Crashlytics
import Fabric

@UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate {

var window: UIWindow?

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    FirebaseApp.configure()
    Fabric.sharedSDK().debug = true
    return true
}

强制崩溃以测试实现:在撰写本文时,我有一个视图控制器,在 viewController 中间有一个名为 (Click to crash app) 的按钮。出于测试目的,当用户单击按钮时,应用程序崩溃了。

然后在模拟器或设备中查看以下代码和 运行 控制器并检查 Firebase 仪表板。您会发现所有崩溃报告。

    import UIKit
    import Crashlytics

class ViewController: UIViewController { 变量name:String! var number:Int!

override func viewDidLoad() {
    super.viewDidLoad()
     name = "12"
   }


    @IBAction func crashBtnAction(_ sender: Any) {
     //creshreportMethod()
    print("name of the value",name)
    var myDict = [String:Any]()
    myDict = ["name":number!]
    print("my dict value",myDict)

  }


}

如果您的构建在启动时附加调试器,Crashlytics 无法捕获崩溃。调整构建设置以更改项目的调试信息格式:

在 Xcode 导航器中仍选择您的项目的情况下,打开构建设置选项卡。 单击选项卡顶部的全部以显示所有构建设置。 搜索“调试信息格式”。 使用 dSYM 文件将调试信息格式设置为 DWARF。

如果您使用的是新的 Firebase Crashlytics SDK,请注意 import Crashlytics 已被 import FirebaseCrashlytics 取代。 crash() 方法在新的 SDK 中不再可用。根据 Firebase 的建议,只需使用:

Swift:

fatalError()

对象 C:

assert(NO);