在 Crashlytics 資訊主頁中,您可以點選問題瞭解詳細資訊 事件報表你可以自訂報表,進一步瞭解 您應用程式中的動態,以及回報給以下事件的相關情況 Crashlytics。
如果您的應用程式使用 「Google Analytics」專用 Firebase SDK。這些記錄檔可讓您 會導致應用程式內出現 Crashlytics 收集事件的使用者動作。
關閉自動當機回報功能 為使用者啟用選用報告。請注意 根據預設,Crashlytics 會自動收集所有應用程式的當機報告 觸及應用程式使用者
新增自訂鍵
你可以使用自訂鍵,取得導致當機情況的應用程式特定狀態。 您可以將任意鍵/值組合與當機報告建立關聯, 您可使用自訂鍵,在 Firebase 控制台中搜尋及篩選當機報告。
您可以在 Crashlytics 資訊主頁中搜尋問題 符合自訂鍵的條件
在控制台中查看特定問題時,可以查看 個別事件的相關自訂鍵 (「鍵」子分頁),甚至篩選 事件 (按頁面頂端的「篩選器」選單)。
使用 setCustomKey
例項方法來設定鍵/值組合。請注意,
setCustomKey
為超載,以便 value
參數接受任何原始值
或 String
引數例如:
Kotlin+KTX
val crashlytics = Firebase.crashlytics crashlytics.setCustomKeys { key("my_string_key", "foo") // String value key("my_bool_key", true) // boolean value key("my_double_key", 1.0) // double value key("my_float_key", 1.0f) // float value key("my_int_key", 1) // int value }
Java
FirebaseCrashlytics crashlytics = FirebaseCrashlytics.getInstance(); crashlytics.setCustomKey("my_string_key", "foo" /* string value */); crashlytics.setCustomKey("my_bool_key", true /* boolean value */); crashlytics.setCustomKey("my_double_key", 1.0 /* double value */); crashlytics.setCustomKey("my_float_key", 1.0f /* float value */); crashlytics.setCustomKey("my_int_key", 1 /* int value */);
您也可以透過呼叫鍵和設定,修改現有鍵的值 改為不同的值例如:
Kotlin+KTX
val crashlytics = Firebase.crashlytics crashlytics.setCustomKeys { key("current_level", 3) key("last_UI_action", "logged_in") }
Java
FirebaseCrashlytics crashlytics = FirebaseCrashlytics.getInstance(); crashlytics.setCustomKey("current_level", 3); crashlytics.setCustomKey("last_UI_action", "logged_in");
將 CustomKeysAndValues
的例項傳遞至
setCustomKeys
例項方法:
Kotlin+KTX
以 Kotlin 來說,現有功能比使用
CustomKeysAndValues
建構工具。
crashlytics.setCustomKeys { key("str_key", "hello") key("bool_key", true) key("int_key", 1) key("long_key", 1L) key("float_key", 1.0f) key("double_key", 1.0) }
Java
CustomKeysAndValues keysAndValues = new CustomKeysAndValues.Builder() .putString("string key", "string value") .putString("string key 2", "string value 2") .putBoolean("boolean key", True) .putBoolean("boolean key 2", False) .putFloat("float key", 1.01) .putFloat("float key 2", 2.02) .build(); FirebaseCrashlytics.getInstance().setCustomKeys(keysAndValues);
新增自訂記錄訊息
如要進一步查看引發當機事件的事件背景資訊,您可以新增 將 Crashlytics 自訂記錄傳送至您的應用程式。Crashlytics 可將記錄建立關聯 檢視您的當機資料,並在以下網址的 Crashlytics 頁面顯示: Firebase 控制台 (位於「記錄檔」分頁下方)。
使用 log
協助找出問題。例如:
Kotlin+KTX
Firebase.crashlytics.log("message")
Java
FirebaseCrashlytics.getInstance().log("message");
設定使用者 ID
瞭解使用者遇到哪些問題,通常有助於診斷問題 處理特定當機問題Crashlytics 可讓您匿名辨識 顯示當機報告
如要在報表中加入 User-ID,請為每位使用者指派專屬 ID 形式的 ID 編號、符記或雜湊值:
Kotlin+KTX
Firebase.crashlytics.setUserId("user123456789")
Java
FirebaseCrashlytics.getInstance().setUserId("user123456789");
如果您在設定好使用者 ID 後需要清除,請將值重設為 空白字串清除使用者 ID 並不會將現有資料移除 Crashlytics 記錄。如何刪除與使用者相關聯的記錄 ID,請與 Firebase 支援團隊聯絡。
(僅限 Android NDK) 在 NDK 當機報告中新增中繼資料
您可以選擇在 C++ 程式碼中加入 crashlytics.h
標頭,以便新增
向 NDK 當機報告提交中繼資料,例如自訂金鑰
自訂記錄檔
使用者 ID。如需上述所有選項的說明,請參閱
請參閱本頁上方說明
crashlytics.h
可做為
Firebase Android SDK GitHub 存放區。
如要瞭解如何使用 NDK C++ API,請參閱標頭檔案中的註解。
納入 GWP-ASan 報告,以便偵錯記憶體毀損問題
Crashlytics 可協助您對原生記憶體錯誤造成的當機問題偵錯 收集 GWP-ASan 報告這些記憶體相關錯誤 應用程式內的記憶體毀損,這是造成應用程式安全性的主要原因 安全漏洞
您可以在新的「記憶體堆疊追蹤」中查看這項資料方法是按一下 新增至問題的詳細資料 「Crashlytics」資訊主頁。
您也可以使用新的「GWP-ASan」報告信號和篩選,以便快速查看 與這些資料相關的所有問題
如果您符合以下條件,即可取得 GWP-ASan 記憶體報告: 明確啟用 GWP-ASan ,並使用 Crashlytics SDK for NDK 18.3.6 以上版本 (Firebase BoM) v31.3.0+)。您可以使用 Android 說明文件中的原生程式碼範例
回報不嚴重的例外狀況
除了自動回報應用程式的當機問題外,Crashlytics 還能讓你 記錄不嚴重的例外狀況,並在下次應用程式時傳送 發布內容。
請使用 recordException
方法,記錄應用程式中的不嚴重例外狀況
catch
個區塊。例如:
Kotlin+KTX
try { methodThatThrows() } catch (e: Exception) { Firebase.crashlytics.recordException(e) // handle your exception here }
Java
try { methodThatThrows(); } catch (Exception e) { FirebaseCrashlytics.getInstance().recordException(e); // handle your exception here }
所有記錄到的例外狀況在 Firebase 控制台中都會顯示為非重大問題。 問題摘要包含您平時收到的所有狀態資訊 當機次數,以及依 Android 版本和硬體裝置細分的資料。
Crashlytics 會處理專屬背景執行緒的例外狀況 將對應用程式的效能影響降到最低。降低使用者的網路用量 流量,Crashlytics 會批次處理記錄的例外狀況,並將 下次啟動應用程式的時間。
取得導覽標記記錄
導覽標記記錄可讓您進一步瞭解使用者的互動情形 引發當機、一般錯誤或 ANR 事件。這些記錄檔 有助於重現並偵錯。
導覽標記記錄是由 Google Analytics 技術提供,因此如要取得導覽標記記錄, 需要 啟用 Google Analytics 。 加入 Google Analytics 專用的 Firebase SDK 導入您的應用程式一旦符合這些需求,導覽標記記錄就會自動 查看詳細資料時,也會在「記錄檔」分頁中納入事件資料 並不瞭解該問題的來龍去脈
Analytics SDK
自動記錄 screen_view
事件
讓導覽標記記錄顯示
當機、一般錯誤或 ANR 事件screen_view
導覽標記記錄中包含
firebase_screen_class
參數。
系統也會填入導覽標記記錄 您在使用者的帳戶中手動記錄的自訂事件 ,包括事件的參數資料。這項資料有助於顯示一系列 觸發引發當機、一般錯誤或 ANR 事件的使用者動作。
請注意,您可以 控管 Google Analytics 資料的收集與使用方式, 包括填入導覽標記記錄的資料。
啟用自選回報功能
根據預設,Crashlytics 會自動收集所有應用程式的當機報告 觸及應用程式使用者如要讓使用者進一步控管他們傳送的資料,您可以啟用 供使用者選擇使用報告,即可停用自動報告功能,並僅將資料傳送給 Crashlytics (選擇在程式碼中執行時):
在
AndroidManifest.xml
檔案的application
區塊中,新增meta-data
標記關閉自動收集功能:<meta-data android:name="firebase_crashlytics_collection_enabled" android:value="false" />
呼叫 Crashlytics 資料,為特定使用者啟用收集功能 會在執行階段覆寫集合覆寫覆寫值會在每次啟動後維持不變 ,以便Crashlytics自動收集報告。如何停用 自動當機回報功能,請傳遞
false
做為覆寫值。設定時 至false
,新的值必須等到應用程式下次執行後才會生效。Kotlin+KTX
Firebase.crashlytics.setCrashlyticsCollectionEnabled(true)
Java
FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(true);
管理當機深入分析資料
當機深入分析會比較匿名堆疊,協助你解決問題 追蹤其他 Firebase 應用程式的追蹤記錄,讓你瞭解問題是否 一部分的趨勢許多問題甚至能透過 Crash Insights 提供的資源 來協助偵測當機問題
Crash Insights 會使用匯總的當機資料,找出常見的穩定性趨勢。 如果不想分享應用程式資料,可以選擇停用「當機深入分析」 前往 Crashlytics 問題清單頂端的「當機深入分析」選單 Firebase 控制台中。