Firebase is back at Google I/O on May 10! Register now

開始使用 Firebase Crashlytics

透過集合功能整理內容 你可以依據偏好儲存及分類內容。

本快速入門介紹瞭如何使用 Firebase Crashlytics SDK 在您的應用中設置 Firebase Crashlytics,以便您可以在 Firebase 控制台中獲得全面的崩潰報告。

設置 Crashlytics 需要在 Firebase 控制台和您的 IDE 中執行任務(例如添加 Firebase 配置文件和 Crashlytics SDK)。要完成設置,您需要強制測試崩潰以將您的第一個崩潰報告發送到 Firebase。

在你開始之前

  1. 如果您還沒有,請將 Firebase 添加到您的 Apple 項目中。如果您沒有 Apple 應用程序,可以下載示例應用程序

  2. 推薦:要獲得無崩潰用戶、麵包屑日誌和速度警報等功能,您需要在 Firebase 項目中啟用 Google Analytics。

    Crashlytics 支持的所有 Apple 平台(watchOS 除外)都可以利用 Google Analytics 的這些功能。請注意,對於 macOS 和 tvOS 應用,您需要 SDK v8.9.0+。

    • 如果您現有的 Firebase 項目沒有啟用 Google Analytics,您可以從 Firebase 控制台中 >項目設置集成選項啟用 Google Analytics。

    • 如果您要創建新的 Firebase 項目,請在項目創建工作流程中啟用 Google Analytics。

第 1 步:將 Crashlytics SDK 添加到您的應用

使用 Swift Package Manager 安裝和管理 Firebase 依賴項。

  1. 在 Xcode 中,打開您的應用程序項目,導航至File > Add Packages
  2. 出現提示時,添加 Firebase Apple 平台 SDK 存儲庫:
  3.   https://github.com/firebase/firebase-ios-sdk
  4. 選擇 Crashlytics 庫。
  5. 為了獲得最佳的 Crashlytics 體驗,我們建議在您的 Firebase 項目中啟用 Google Analytics ,並將適用於 Google Analytics 的 Firebase SDK 添加到您的應用程序中。您可以選擇沒有 IDFA 集合或有 IDFA 集合的庫。
  6. 完成後,Xcode 將自動開始在後台解析和下載您的依賴項。

接下來,配置 Firebase 模塊:

  1. 在您的App結構或UIApplicationDelegate中導入 Firebase 模塊:

    迅速

    import Firebase

    目標-C

    @import Firebase;
  2. 配置一個FirebaseApp共享實例,通常在您的應用委託的application(_:didFinishLaunchingWithOptions:)方法中:

    迅速

    // Use the Firebase library to configure APIs.
    FirebaseApp.configure()
    

    目標-C

    // Use the Firebase library to configure APIs.
    [FIRApp configure];
    

第 2 步:設置 Xcode 以自動上傳 dSYM 文件

要生成人類可讀的崩潰報告,Crashlytics 需要您項目的調試符號 (dSYM) 文件。以下步驟描述瞭如何配置 Xcode 以在您構建應用程序時自動生成、處理它們並上傳文件。

  1. 打開項目的 Xcode 工作區,然後在左側導航器中選擇其項目文件。

  2. TARGETS列表中,選擇您的主要構建目標。

  3. 單擊Build Settings選項卡,然後完成以下步驟,以便 Xcode 為您的構建生成 dSYM。

    1. 單擊全部,然後搜索debug information format

    2. 將所有構建類型的調試信息格式設置為DWARF with dSYM File

  4. 單擊Build Phases選項卡,然後完成以下步驟,以便 Xcode 可以處理您的 dSYM 並上傳文件。

    1. 單擊 >新建運行腳本階段

      確保這個新的運行腳本階段是您項目的最後一個構建階段;否則,Crashlytics 無法正確處理 dSYM。

    2. 展開新的運行腳本部分。

    3. 在腳本字段中(位於Shell標籤下),添加以下運行腳本。

      此腳本處理項目的 dSYM 文件並將文件上傳到 Crashlytics。

      "${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run"
    4. 輸入文件部分,添加以下文件位置的路徑:

      • 項目的dSYM 文件的位置:

        ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}

        提供項目的 dSYM 文件的位置使 Crashlytics 能夠更快地處理大型應用程序的 dSYM。

      • 項目構建的Info.plist文件的位置:

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

        提供項目構建的Info.plist文件的位置使 Crashlytics 能夠將應用程序版本與 dSYM 相關聯。

有關 dSYM 文件和 Crashlytics(包括如何手動上傳 dSYM 文件)的更多詳細信息,請訪問獲取去混淆的崩潰報告

第 3 步:強制測試崩潰以完成設置

要完成 Crashlytics 的設置並在 Firebase 控制台的 Crashlytics 儀表板中查看初始數據,您需要強制測試崩潰。

  1. 將可用於強制測試崩潰的代碼添加到您的應用程序。

    您可以使用以下代碼向您的應用程序添加一個按鈕,按下該按鈕會導致崩潰。該按鈕標記為“測試崩潰”。

    斯威夫特用戶界面

    Button("Crash") {
      fatalError("Crash was triggered")
    }
    

    UI工具包

    迅速

    import UIKit
    
    class ViewController: UIViewController {
      override func viewDidLoad() {
          super.viewDidLoad()
    
          // Do any additional setup after loading the view, typically from a nib.
    
          let button = UIButton(type: .roundedRect)
          button.frame = CGRect(x: 20, y: 50, width: 100, height: 30)
          button.setTitle("Test Crash", for: [])
          button.addTarget(self, action: #selector(self.crashButtonTapped(_:)), for: .touchUpInside)
          view.addSubview(button)
      }
    
      @IBAction func crashButtonTapped(_ sender: AnyObject) {
          let numbers = [0]
          let _ = numbers[1]
      }
    }
    

    目標-C

    #import "ViewController.h"
    
    @implementation ViewController
    ‐ (void)viewDidLoad {
        [super viewDidLoad];
    
        // Do any additional setup after loading the view, typically from a nib.
    
        UIButton* button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        button.frame = CGRectMake(20, 50, 100, 30);
        [button setTitle:@"Test Crash" forState:UIControlStateNormal];
        [button addTarget:self action:@selector(crashButtonTapped:)
            forControlEvents:UIControlEventTouchUpInside];
        [self.view addSubview:button];
    }
    
    ‐ (IBAction)crashButtonTapped:(id)sender {
        @[][1];
    }
    
    @end
    
  2. 在 Xcode 中構建並運行您的應用程序。

    1. 單擊 Build 然後運行當前方案以在測試設備或模擬器上構建您的應用程序。

    2. 等待您的應用程序運行,然後單擊運行方案或操作以關閉您的應用程序的初始實例。這個初始實例包括干擾 Crashlytics 的調試器。

  3. 強制測試崩潰以發送您的應用程序的第一個崩潰報告:

    1. 從測試設備或模擬器的主屏幕打開您的應用程序。

    2. 在您的應用中,按下您使用上述代碼添加的“測試崩潰”按鈕。

    3. 在您的應用程序崩潰後,從 Xcode 再次運行它,以便您的應用程序可以將崩潰報告發送到 Firebase。

  4. 轉到 Firebase 控制台的Crashlytics 儀表板以查看您的測試崩潰。

    如果您刷新了控制台,但五分鐘後仍未看到測試崩潰,請啟用調試日誌記錄以查看您的應用程序是否正在發送崩潰報告。


就是這樣! Crashlytics 現在正在監控您的應用程序是否發生崩潰。訪問Crashlytics 儀表板以查看和調查您的所有報告和統計信息。

下一步