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

时间:2015-01-20 19:51:20

标签: ios swift crashlytics twitter-fabric

我所能找到的只是Is there a quick way to force a crash?,它说:

[[Crashlytics sharedInstance] crash];

我认为在Swift中会是

Crashlytics.sharedInstance.crash()

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

我看到有一个Crashlytics.crash(自我:Crashlytics)......没关系,friggin XCode的完成总是为我打破。见下面的答案。

3 个答案:

答案 0 :(得分:22)

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

迅速:

fatalError()

Obj C:

assert(NO);

答案 1 :(得分:12)

(如果它位于AppDelegate以外的文件中,则需要import Crashlytics,然后执行Crashlytics.sharedInstance().crash()

答案 2 :(得分:1)

在Firebase中创建项目和应用

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

将Firebase添加到iOS应用

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

通过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 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

ViewController类:UIViewController {         var名称:字符串!          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)

  }


}

Adjust your project’s debug settings

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

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

enter image description here enter image description here