開始使用 Firebase Crashlytics

本快速入門導覽課程說明如何在應用程式中設定 Firebase Crashlytics 與 Firebase Crashlytics SDK 搭配使用,讓您可以全面掌握當機事件 。

如要設定 Crashlytics,必須先在 Firebase 控制台和 您的 IDE (例如新增 Firebase 設定檔和 Crashlytics) SDK)。請先強制測試當機,這樣才能完成設定 向 Firebase 回報當機報告。

事前準備

  1. 如果您尚未在 Apple 應用程式中新增 Firebase,請先完成這項操作。 專案。如果您沒有 Apple 應用程式,請下載 範例應用程式

  2. 建議:自動取得 導覽標記記錄 瞭解引發當機、一般錯誤或 ANR 事件的使用者動作 您必須在 Firebase 專案中啟用 Google Analytics。

    • 如果你現有的 Firebase 專案沒有 Google Analytics 您可以在該頁面啟用 Google Analytics Ad Manager 的「Integrations分頁 >專案設定

    • 如要建立新的 Firebase 專案,請啟用 Google Analytics 專案建立流程

    請注意,凡是在 Google Cloud 中 Crashlytics (WatchOS 除外)。

步驟 1:在應用程式中加入 Crashlytics SDK

使用 Swift Package Manager 安裝及管理 Firebase 依附元件。

  1. 在 Xcode 中保持開啟應用程式專案,然後依序選擇 [檔案] >新增套件
  2. 在系統提示時,新增 Firebase Apple 平台 SDK 存放區:
  3.   https://github.com/firebase/firebase-ios-sdk.git
  4. 選擇 Crashlytics 程式庫。
  5. 充分運用 導覽標記記錄 此外,請將 Google Analytics 專用 Firebase SDK 加進應用程式。請確認 已啟用 Google Analytics
  6. 在目標建構設定的「Other Linker Flags」部分中新增 -ObjC 標記。
  7. (僅限 macOS)Info.plist 中新增索引鍵 NSApplicationCrashOnExceptions 並將其設為 YES
  8. 完成後,Xcode 會自動開始解析並下載 複製到背景依附元件

接下來,設定 Firebase 模組:

  1. 將 Firebase 模組匯入 App 結構或 UIApplicationDelegate

    Swift

    import Firebase

    目標-C

    @import Firebase;
  2. 設定 FirebaseApp 共用例項,通常位於應用程式委派的 application(_:didFinishLaunchingWithOptions:) 方法:

    Swift

    // 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 自動產生及處理 dSYM 檔案 建構應用程式

  1. 開啟專案的 Xcode 工作區,然後在 使用這個按鈕

  2. 從「TARGETS」(目標) 清單中選取主要建構目標。

  3. 按一下「Build Settings」分頁標籤,然後完成下列步驟, Xcode 會為建構產生 dSYM。

    1. 按一下「全部」,然後搜尋「debug information format」。

    2. 將您所有的「偵錯資訊格式」設為 DWARF with dSYM File 建構類型

  4. 按一下「Build Phases」分頁標籤,然後完成下列步驟, Xcode 可以處理您的 dSYM 並上傳檔案。

    1. 按一下 > 新執行指令碼階段

      確認這個新的「Run Script」階段是專案的最後版本 階段;否則 Crashlytics 無法正確處理 dSYM。

    2. 展開新的「Run Script」(執行指令碼) 部分。

    3. 在指令碼欄位 (位於「殼層」標籤下方),新增 後續的執行指令碼

      這段指令碼會處理專案的 dSYM 檔案,並將檔案上傳至 Crashlytics。

      "${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run"
    4. 在「Input Files」(輸入檔案) 區段中,新增 下列檔案:

      ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}
      ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}
      ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist
      $(TARGET_BUILD_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/GoogleService-Info.plist
      $(TARGET_BUILD_DIR)/$(EXECUTABLE_PATH)

針對 dSYM 檔案和 Crashlytics (包括 如何手動上傳 dSYM 檔案),請前往 取得經過去模糊化的當機報告

步驟 3:強制測試當機以完成設定

如要完成 Crashlytics 設定及查看初始資料,請前往 Firebase 控制台的 Crashlytics 資訊主頁,您必須強制執行測試 當機。

  1. 在應用程式中新增程式碼,以便強制執行測試當機。

    您可以使用下列程式碼在應用程式中加入按鈕。 按下時會導致當機。該按鈕標示為「測試當機」。

    SwiftUI

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

    UIKit

    Swift

    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 中建構並執行應用程式,但中斷 Xcode 偵錯工具。

    1. 按一下 「建立」,然後點選 執行目前的配置,在測試裝置上建構應用程式,或 模擬工具

    2. 等到應用程式開始運作後再點選 停止執行配置或 動作,關閉應用程式的初始執行個體。這個初始 執行個體含有會幹擾 Crashlytics 的偵錯工具。

  3. 強制測試當機,以便傳送應用程式的第一份當機報告:

    1. 從測試裝置或模擬器的主畫面開啟應用程式。

    2. 在應用程式中,按下「測試當機」透過程式碼新增的按鈕 。

    3. 應用程式當機後,請從 Xcode 再次執行,讓應用程式能夠 傳送當機報告給 Firebase。

  4. 前往下列網址的 Crashlytics 資訊主頁: Firebase 控制台,查看測試當機情形。

    重新整理控制台後,如未發現測試當機 五分鐘後 啟用偵錯記錄功能 查看應用程式是否傳送當機報告。


大功告成!Crashlytics 正在監控應用程式的當機情形。 前往 Crashlytics 資訊主頁查看和調查問題 所有報表和統計資料

後續步驟