本快速入門導覽課程說明如何在應用程式中設定 Firebase Crashlytics 安裝 Crashlytics Flutter 外掛程式 Firebase控制台中的報告。
設定 Crashlytics 時,必須同時使用指令列工具和 IDE。 為完成設定,您需要強制擲回測試例外狀況,以便將 向 Firebase 回報第一則當機報告
事前準備
如果還沒試過 在 Flutter 中設定並初始化 Firebase 專案。
建議:自動取得 導覽標記記錄 瞭解引發當機、一般錯誤或 ANR 事件的使用者動作 您必須在 Firebase 專案中啟用 Google Analytics。
如果現有的 Firebase 專案沒有Google Analytics 啟用 Google Analytics,您可以前往 使用者介面的「整合」分頁
>專案設定Firebase)。 如要建立新的 Firebase 專案,請啟用「Google Analytics」 專案建立流程
請注意,所有 Android 和 Apple 平台皆有導覽標記記錄 Crashlytics 支援 (watchOS 除外)。
步驟 1:將 Crashlytics 新增至 Flutter 專案
在 Flutter 專案的根目錄中執行下列指令,以安裝 Crashlytics 的 Flutter 外掛程式
充分運用 導覽標記記錄 也請將 Google Analytics 的 Flutter 外掛程式新增至應用程式。 請確認 已啟用 Google Analytics 。
flutter pub add firebase_crashlytics && flutter pub add firebase_analytics
在 Flutter 專案的根目錄中執行下列指令:
flutterfire configure
執行這個指令可確保 Flutter 應用程式的 Firebase 設定 是最新版本,並在 Android 中新增必要的 Crashlytics Gradle 外掛程式
完成後,請重新建構 Flutter 專案:
flutter run
(選用) 如果您的 Flutter 專案使用
--split-debug-info
標記 (以及選用性--obfuscate
旗標) 的其他步驟 才能顯示可讀取的應用程式堆疊追蹤。Apple 平台:確認您的專案採用建議項目 版本設定 (Flutter 3.12.0+ 和 Crashlytics Flutter 外掛程式 3.3.4 以上版本),讓您的專案可以 自動產生 Flutter 符號 (dSYM 檔案) 並上傳至 Crashlytics。
Android:使用 Firebase CLI (v.11.9.0+) 上傳 Flutter 偵錯符號。您必須在「之前」上傳偵錯符號 回報模糊的程式碼版本當機情形。
在 Flutter 專案的根目錄中執行下列指令 指令:
firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/symbols
FIREBASE_APP_ID:您的 Firebase Android 應用程式 ID (非 套件名稱)
Firebase Android 應用程式 ID 範例:1:567383003300:android:17104a2ced0c9b9b
PATH/TO/symbols
:您所需的目錄 在建構應用程式時傳遞到--split-debug-info
旗標
步驟 2:設定當機處理常式
您可以自動擷取 Flutter 擲回的所有錯誤
方法是將 FlutterError.onError
覆寫為
FirebaseCrashlytics.instance.recordFlutterFatalError
:
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
// Pass all uncaught "fatal" errors from the framework to Crashlytics
FlutterError.onError = FirebaseCrashlytics.instance.recordFlutterFatalError;
runApp(MyApp());
}
如要擷取未由 Flutter 架構處理的非同步錯誤,請使用
PlatformDispatcher.instance.onError
:
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
FlutterError.onError = (errorDetails) {
FirebaseCrashlytics.instance.recordFlutterFatalError(errorDetails);
};
// Pass all uncaught asynchronous errors that aren't handled by the Flutter framework to Crashlytics
PlatformDispatcher.instance.onError = (error, stack) {
FirebaseCrashlytics.instance.recordError(error, stack, fatal: true);
return true;
};
runApp(MyApp());
}
如需如何處理其他類型的錯誤的範例,請參閱 自訂當機報告。
步驟 3:強制測試當機以完成設定
完成 Crashlytics 設定並在 Crashlytics 中查看初始資料 資訊主頁中的資訊主頁,Firebase請強制執行測試例外狀況 擲回。
在應用程式中加入程式碼,以便強制執行測試例外狀況 擲回。
如果您新增的錯誤處理常式
FirebaseCrashlytics.instance.recordError(error, stack, fatal: true)
設為 頂層Zone
,可以使用以下程式碼在應用程式中新增按鈕 按下時,系統會擲回測試例外狀況:TextButton( onPressed: () => throw Exception(), child: const Text("Throw Test Exception"), ),
建構並執行應用程式。
強制擲回測試例外狀況,以便傳送應用程式第一個 報告:
透過測試裝置或模擬器開啟應用程式。
在應用程式中,按下您使用 。
前往 「Crashlytics」資訊主頁 Firebase 控制台,查看測試當機情形。
重新整理控制台後,如未發現測試當機 五分鐘後 啟用偵錯記錄功能 查看應用程式是否傳送當機報告。
大功告成!「Crashlytics」正在監控你的應用程式當機情形,而且已開啟
Android、一般錯誤和 ANR。請造訪
「Crashlytics」資訊主頁
查看和調查所有報表和統計資料。
後續步驟
自訂當機報告設定 並加入使用者選擇啟用的報表、記錄檔、鍵和 發生錯誤。
與 Google Play 整合 就能依 Google Play 測試群組篩選 Android 應用程式的當機報告 直至Crashlytics數字面板。方便你專心處理事務 以及特定版本的資訊主頁
同時查看堆疊追蹤和當機統計資料,以及 程式碼 Android Studio 中的「App Quality Insights」視窗 ( 。