本快速入門導覽課程說明如何在應用程式中使用 Firebase Crashlytics SDK 設定 Firebase Crashlytics,以便在 Firebase 控制台中取得完整的當機報告。
如要設定 Crashlytics,您必須具備 Firebase 控制台和 IDE 中的工作 (例如新增 Firebase 設定檔和 Crashlytics SDK)。您需要強制測試當機,才能將第一份當機報告傳送至 Firebase,才能完成設定。
事前準備
如果您尚未在 Apple 專案中新增 Firebase,請先完成這項操作。如果您沒有 Apple 應用程式,可以下載範例應用程式。
建議:如要自動取得導覽標記記錄,瞭解導致當機、非致命或 ANR 事件的使用者動作,您必須在 Firebase 專案中啟用 Google Analytics。
如果現有的 Firebase 專案未啟用 Google Analytics,請前往 Firebase 控制台,依序前往
,依序點選 >「Project settings」「Integrations」分頁和「Project settings」,啟用 Google Analytics。 如果您要建立新的 Firebase 專案,請在專案建立工作流程中啟用 Google Analytics。
請注意,除了 watchOS 以外,Crashlytics 支援的所有 Apple 平台都支援麵包屑記錄。
步驟 1:在應用程式中新增 Crashlytics SDK
使用 Swift Package Manager 安裝及管理 Firebase 依附元件。
- 在 Xcode 中保持開啟應用程式專案,然後依序點選「File」>「Add Packages」。
- 系統顯示提示訊息時,請新增 Firebase Apple 平台 SDK 存放區:
- 選擇 Crashlytics 程式庫。
- 如要利用導覽標記記錄,請一併將 Google Analytics 的 Firebase SDK 新增至您的應用程式。請務必在 Firebase 專案中啟用 Google Analytics。
- 在目標建構設定的「Other Linker Flags」部分中新增
-ObjC
標記。 - (僅限 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。
展開新的「Run Script」(執行指令碼) 部分。
在指令碼欄位 (位於「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)
如要進一步瞭解 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」
,然後執行目前的配置,即可在測試裝置或模擬器上建構應用程式。等待應用程式執行後,按一下 Crashlytics 的偵錯工具。
「Stop running cheme or action」(停止執行配置或動作),關閉應用程式的初始執行個體。這個初始執行個體包含會幹擾
強制執行測試當機,以便傳送應用程式的首份當機報告:
在測試裝置或模擬器的主畫面上開啟應用程式。
在應用程式中,按下您使用上述程式碼新增的「Test Crash」按鈕。
應用程式當機後,請透過 Xcode 再次執行應用程式,以便應用程式將當機報告傳送至 Firebase。
前往 Firebase 控制台的 Crashlytics 資訊主頁,查看測試異常終止情形。
如果您已重新整理控制台,但五分鐘後仍未看到測試異常終止,請啟用偵錯記錄,看看應用程式是否會傳送異常終止報告。
大功告成!Crashlytics 正在監控應用程式的當機情形。前往 Crashlytics 資訊主頁查看及查看所有報表和統計資料。
後續步驟
- 新增選擇啟用報告、記錄、鍵及一般錯誤的追蹤,以自訂當機報告設定。