本快速入門導覽課程說明如何使用 Firebase Crashlytics SDK 在應用程式中設定 Firebase Crashlytics,以便在 Firebase 控制台中取得完整的當機報告。
設定 Crashlytics 時,您需要在 Firebase 控制台和 IDE 中執行作業 (例如新增 Firebase 設定檔和 Crashlytics SDK)。如要完成設定,您需要強制測試當機,將第一份當機報告傳送至 Firebase。
事前準備
- 如果尚未新增,請將 Firebase 新增至 Apple 專案。如果沒有 Apple 應用程式,可以下載範例應用程式。 
- 建議:如要自動取得導覽標記記錄,瞭解引發當機、一般錯誤或 ANR 事件的使用者動作,請在 Firebase 專案中啟用 Google Analytics。 - 如果現有的 Firebase 專案未啟用 Google Analytics,您可以在 Firebase 控制台的「 - 」>「專案設定」 中,前往「整合」分頁標籤啟用 Google Analytics。
- 如果您要建立新的 Firebase 專案,請在專案建立工作流程中啟用 Google Analytics。 
 - 請注意,除了 watchOS 以外,所有支援的 Apple 平台都提供路徑記錄。 Crashlytics 
步驟 1:在應用程式中加入 Crashlytics SDK
使用 Swift Package Manager 安裝及管理 Firebase 依附元件。
- 在 Xcode 中保持開啟應用程式專案,然後依序點選「File」(檔案) 和「Add Packages」(新增 Package)。
- 系統提示時,請新增 Firebase Apple 平台 SDK 存放區:
- 選擇 Crashlytics 程式庫。
- 如要使用路徑記錄,請在應用程式中加入 Firebase SDK for Google Analytics。請務必在 Firebase 專案中啟用 Google Analytics。
- 將 -ObjC標記加進目標建構設定的「Other Linker Flags」部分。
- (僅限 macOS) 在 Info.plist中,新增金鑰NSApplicationCrashOnExceptions並設為YES。
- 完成後,Xcode 會自動開始在背景中解析並下載依附元件。
https://github.com/firebase/firebase-ios-sdk.git
接著,請設定 Firebase 模組:
- 在 - App結構體或- UIApplicationDelegate中匯入 Firebase 模組:- Swift- import Firebase - Objective-C- @import Firebase; 
- 設定 - FirebaseApp共用例項,通常是在應用程式委派的- application(_:didFinishLaunchingWithOptions:)方法中:- Swift- // Use the Firebase library to configure APIs. FirebaseApp.configure() - Objective-C- // Use the Firebase library to configure APIs. [FIRApp configure]; 
步驟 2:設定 Xcode 以自動上傳 dSYM 檔案
如要產生淺顯易懂的當機報告,Crashlytics 需要專案的偵錯符號 (dSYM) 檔案。下列步驟說明如何設定 Xcode,在您建構應用程式時自動產生 dSYM、處理這些檔案,並上傳。
- 開啟專案的 Xcode 工作區,然後在左側導覽器中選取專案檔案。 
- 從「TARGETS」清單中,選取主要建構目標。 
- 按一下「Build Settings」分頁標籤,然後完成下列步驟,讓 Xcode 為您的建構作業產生 dSYM。 - 按一下「全部」,然後搜尋 - debug information format。
- 將所有建構類型的「偵錯資訊格式」設為 - DWARF with dSYM File。
 
- 按一下「Build Phases」分頁標籤,然後完成下列步驟,讓 Xcode 處理 dSYM 並上傳檔案。 - 依序點選 >「New Run Script Phase」。 - 請確認這個新的「執行指令碼」階段是專案的最後一個建構階段,否則 Crashlytics 無法正確處理 dSYM。 
- 展開新的「執行指令碼」部分。 
- 在指令碼欄位 (位於「Shell」標籤下方) 中,新增下列執行指令碼。 - 這個指令碼會處理專案的 dSYM 檔案,並將檔案上傳至 Crashlytics。 - "${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run"
- 在「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) - ENABLE_USER_SCRIPT_SANDBOXING=YES和- ENABLE_DEBUG_DYLIB=YES,請加入下列項目:- ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}.debug.dylib
 
如要進一步瞭解 dSYM 檔案和 Crashlytics (包括如何手動上傳 dSYM 檔案),請參閱「取得經過反混淆處理的當機報告」。
步驟 3:強制測試當機以完成設定
您需要強制測試當機,才能完成設定 Crashlytics,並在 Firebase 控制台的 Crashlytics 資訊主頁中看見初始資料。
- 在應用程式中加入程式碼,強制測試當機。 - 您可以使用下列程式碼,在應用程式中新增按鈕,按下按鈕時會導致應用程式當機。按鈕標示為「Test Crash」。 - 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] } } - Objective-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 
- 在 Xcode 中建構及執行應用程式,並中斷 Xcode 偵錯工具連線。 - 按一下「Build and then run the current scheme」(建構並執行目前的配置) ,在測試裝置或模擬器上建構應用程式。 
- 等待應用程式執行完畢,然後按一下「停止執行配置或動作」,關閉應用程式的初始執行個體。這個初始執行個體包含會干擾 Crashlytics 的偵錯工具。 
 
- 強制測試當機,以便傳送應用程式的第一份當機報告: - 在測試裝置或模擬器的主畫面開啟應用程式。 
- 在應用程式中,按下您使用上述程式碼新增的「Test Crash」按鈕。 
- 應用程式當機後,請從 Xcode 再次執行,讓應用程式將當機報告傳送至 Firebase。 
 
- 前往 Firebase 控制台的Crashlytics 資訊主頁,查看測試當機情形。 - 如果重新整理控制台後,您在五分鐘內仍未看到測試當機,請啟用偵錯記錄,確認應用程式是否傳送當機報告。 
這樣就完成了!「Crashlytics」現在會監控應用程式是否當機。 前往 Crashlytics 資訊主頁,即可查看及調查所有報表和統計資料。
後續步驟
- 自訂當機報告設定, 新增選擇加入回報、記錄、鍵,以及追蹤非致命錯誤。