Go to console

FirebaseCrashlytics Framework Reference

Crashlytics

class Crashlytics : NSObject

The Firebase Crashlytics API provides methods to annotate and manage fatal and non-fatal reports captured and reported to Firebase Crashlytics.

By default, Firebase Crashlytics is initialized with [FIRApp configure].

Note: The Crashlytics class cannot be subclassed. If this makes testing difficult, we suggest using a wrapper class or a protocol extension.

  • Accesses the singleton Crashlytics instance.

    Declaration

    Swift

    class func crashlytics() -> Self

    Return Value

    The singleton Crashlytics instance.

  • Adds logging that is sent with your crash data. The logging does not appear in the system.log and is only visible in the Crashlytics dashboard.

    Declaration

    Swift

    func log(_ msg: String)

    Parameters

    msg

    Message to log

  • Adds logging that is sent with your crash data. The logging does not appear in the system.log and is only visible in the Crashlytics dashboard.

    Parameters

    format

    Format of string

    ...

    A comma-separated list of arguments to substitute into format

  • Adds logging that is sent with your crash data. The logging does not appear in the system.log and is only visible in the Crashlytics dashboard.

    Declaration

    Swift

    func log(format: String, arguments args: CVaListPointer)

    Parameters

    format

    Format of string

    args

    Arguments to substitute into format

  • Sets a custom key and value to be associated with subsequent fatal and non-fatal reports. When setting an object value, the object is converted to a string. This is typically done by calling “-[NSObject description]”.

    Declaration

    Swift

    func setCustomValue(_ value: Any, forKey key: String)

    Parameters

    value

    The value to be associated with the key

    key

    A unique key

  • Records a user ID (identifier) that’s associated with subsequent fatal and non-fatal reports.

    If you want to associate a crash with a specific user, we recommend specifying an arbitrary string (e.g., a database, ID, hash, or other value that you can index and query, but is meaningless to a third-party observer). This allows you to facilitate responses for support requests and reach out to users for more information.

    Declaration

    Swift

    func setUserID(_ userID: String)

    Parameters

    userID

    An arbitrary user identifier string that associates a user to a record in your system.

  • Records a non-fatal event described by an NSError object. The events are grouped and displayed similarly to crashes. Keep in mind that this method can be expensive. The total number of NSErrors that can be recorded during your app’s life-cycle is limited by a fixed-size circular buffer. If the buffer is overrun, the oldest data is dropped. Errors are relayed to Crashlytics on a subsequent launch of your application.

    Declaration

    Swift

    func record(error: Error)

    Parameters

    error

    Non-fatal error to be recorded

  • Returns whether the app crashed during the previous execution.

    Declaration

    Swift

    func didCrashDuringPreviousExecution() -> Bool
  • Enables/disables automatic data collection.

    Calling this method overrides both the FirebaseCrashlyticsCollectionEnabled flag in your App’s Info.plist and FIRApp’s isDataCollectionDefaultEnabled flag.

    When you set a value for this method, it persists across runs of the app.

    The value does not apply until the next run of the app. If you want to disable data collection without rebooting, add the FirebaseCrashlyticsCollectionEnabled flag to your app’s Info.plist. *

    Declaration

    Swift

    func setCrashlyticsCollectionEnabled(_ enabled: Bool)

    Parameters

    enabled

    Determines whether automatic data collection is enabled

  • Indicates whether or not automatic data collection is enabled

    This method uses three ways to decide whether automatic data collection is enabled, in order of priority:

    • If setCrashlyticsCollectionEnabled iscalled with a value, use it
    • If the FirebaseCrashlyticsCollectionEnabled key is in your app’s Info.plist, use it
    • Otherwise, use the default isDataCollectionDefaultEnabled in FIRApp

    Declaration

    Swift

    func isCrashlyticsCollectionEnabled() -> Bool
  • Determines whether there are any unsent crash reports cached on the device, then calls the given callback.

    The callback only executes if automatic data collection is disabled. You can use the callback to get one-time consent from a user upon a crash, and then call sendUnsentReports or deleteUnsentReports, depending on whether or not the user gives consent.

    Disable automatic collection by:

    • Adding the FirebaseCrashlyticsCollectionEnabled: NO key to your App’s Info.plist
    • Calling [[FIRCrashlytics crashlytics] setCrashlyticsCollectionEnabled:NO] in your app
    • Setting FIRApp’s isDataCollectionDefaultEnabled to NO

    Declaration

    Swift

    func checkForUnsentReports(completion: @escaping (Bool) -> Void)

    Parameters

    completion

    The callback that’s executed once Crashlytics finishes checking for unsent reports. The callback is set to YES if there are unsent reports on disk.

  • Enqueues any unsent reports on the device to upload to Crashlytics.

    This method only applies if automatic data collection is disabled.

    When automatic data collection is enabled, Crashlytics automatically uploads and deletes reports at startup, so this method is ignored.

    Declaration

    Swift

    func sendUnsentReports()
  • Deletes any unsent reports on the device.

    This method only applies if automatic data collection is disabled.

    Declaration

    Swift

    func deleteUnsentReports()