Integrate Google Firebase Crashlytics in iOS app using swift

The Firebase Crashlytics SDK allows developers to receive real-time crash reports for their apps. It logs crashes and provides detailed information about their origins, enabling developers to address and resolve issues in subsequent app releases. This, in turn, enhances the app’s stability for users. In this tutorial, we will learn how to integrate the Firebase Crashlytics SDK into an iOS app using Swift.

Adding Firebase SDK

The first step is to add the Firebase SDK and other dependencies to our project. Follow the steps below to add the Firebase SDK to your project.

  1. Go to Firebase Console.
  2. Click on Add project.
  3. Enter your project name.
  4. Link Google Analytics to the project by following the steps shown in the Firebase console window.
  5. Select your current location (country you are residing in).
  6. Accept the terms and conditions, then click on Create project.
  7. Click Continue. A screen with your project dashboard will open.
  8. Click on the iOS icon as we want to add the Firebase SDK for iOS.
  9. Follow the 5 steps described on the webpage to add Firebase to your iOS app. Note that different installation methods are available, but the recommended method is via Swift Package Manager (SPM).

Using Firebase Crashlytics SDK

Follow below Steps:

  • Drag and drop GoogleService-Info.plist into the project folder.
  • Open AppDelegate.swift and import Firebase, followe by configure command.
import UIKit
import Firebase

@main
class AppDelegate: UIResponder, UIApplicationDelegate {

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.
        FirebaseApp.configure()
        return true
    }
}
Add run script for Firebase crashlytics in xcode iOS
  1. Select the project in Project Naviagtor
  2. Select project target listed under TARGETS, in our case its ‘CrashlyticsDemo‘.
  3. Select Build Phases.
  4. Click on + icon, then select New Run Script Phase.
  5. Under shell section add below run script
"${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run"

Note:- If you are using cocoa pods for installation, then you need to add given below shell command

"${PODS_ROOT}/FirebaseCrashlytics/run"

The above scripts are required as crashlytics requires, app to upload debug symbols. Run script build phase for Xcode will automatically upload debug symbols post-build.
Fore more info check this link: https://firebase.google.com/docs/ios/installation-methods

Next steps is to upload DYSM files. In the Input Files section, add the paths for the locations of the following files:

  1. The location of project’s dSYM files:
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}

As per documentation, providing the location of your project’s dSYM files enables Crashlytics to process dSYMs for large apps more quickly.

2. The location of your project’s built Info.plist file:

$(SRCROOT)/$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)

As per Firebase crashlytics documentation, providing the location of your project’s built Info.plist file enables Crashlytics to associate an app version with the dSYMs.

Lastly, under Build Settings of TARGETS and PROJECT. Search for Debug information format, and set it as “DWARF with DYSM file”.

Debug information format, and set it as DWARF with DYSM file  xcode ios firebase crashlytics

Where to go from here

In this post, we learned about how can we use Firebase crashlytics in iOS app using swift language. Given advantages provided by crashlytics to report crash inside app in a very descriptive way, it’s a very needy thing to use in the mobile app.