自訂 Firebase Crashlytics 當機報告


Crashlytics 資訊主頁中,您可以點選問題瞭解詳細資訊 事件報表您可以自訂這些報表,進一步瞭解應用程式發生的情況,以及向 Crashlytics 回報的事件相關情況。

  • 如果您的應用程式使用Google Analytics」專用 Firebase SDK。這些記錄檔可讓您瞭解導致應用程式中 Crashlytics 收集事件的使用者動作。

  • 關閉自動當機回報功能 為使用者啟用選用報告。請注意 根據預設,Crashlytics 會自動收集所有應用程式的當機報告 觸及應用程式使用者

回報例外狀況

回報擷取的例外狀況

如果您預期有例外狀況,可以編寫 Crashlytics SDK 將事件回報為一般事件。這些事件會記錄在裝置上 然後與下一份嚴重事件報告一起傳送,或是使用者重新啟動時 遊戲。

您可以使用下列方法在 C# 中記錄例外狀況:

Crashlytics.LogException(Exception ex);

您可以在遊戲的 try/catch 區塊中記錄預期的例外狀況:

try {
    myMethodThatThrows();
} catch (Exception e) {
   Crashlytics.LogException(e);
   // handle your exception here!
}

回報未擷取的例外狀況

不會異常終止遊戲的未偵測到例外狀況 (例如未偵測到的例外狀況) 遊戲邏輯中的 C# 例外狀況),您可以讓 Crashlytics SDK 回報這些例外狀況 視為嚴重事件,方法是將 對您Crashlytics.ReportUncaughtExceptionsAsFatal所擁有的true屬性 在 Unity 專案中初始化 Crashlytics ,直接在 Google Cloud 控制台實際操作。 這些事件會即時回報給 Crashlytics,無需 讓使用者重新啟動遊戲。

將這些未偵測到的例外狀況回報為嚴重事件,表示這些事件會計入這些例外狀況 未受當機情況影響的使用者統計資料,以及當機風險驟升快訊。

請注意,系統一律會將原生當機事件回報為嚴重事件。這些事件會在裝置上記錄,並在使用者重新啟動遊戲時傳送。

void Start() {
    // Since there is no try-block surrounding this call, if an exception is thrown,
    // it is considered unexpected.
    // Setting `Crashlytics.ReportUncaughtExceptionsAsFatal = true`
    // will ensure that such cases are reported as fatals.
    thirdPartyMethodThatMayThrow();
}

納入 GWP-ASan 報告,以便偵錯記憶體毀損問題

對於使用 IL2CPP 的 Android 應用程式,Crashlytics 可收集 GWP-ASan 報告,協助您偵錯因原生記憶體錯誤而導致的當機問題。這些記憶體相關錯誤可能與應用程式中的記憶體毀損問題有關,而這類問題是造成應用程式安全漏洞的主要原因。

  • 您可以在新的「記憶體堆疊追蹤」中查看這項資料方法是按一下 新增至問題的詳細資料 Crashlytics」資訊主頁

  • 您也可以使用新的「GWP-ASan」報告信號和篩選,以便快速查看 與這些資料相關的所有問題

如果你的應用程式不支援 GWP-ASan 記憶體報告,即可取得 GWP-ASan 記憶體報告 採用最新的 Crashlytics SDK for Unity (10.7.0 以上版本),並 已明確啟用 GWP-ASan (您必須 修改 Android 應用程式資訊清單)。 如果應用程式有任何 C++ 程式碼,您可以使用 Android 說明文件中的原生程式碼範例範例

新增自訂鍵

你可以使用自訂鍵,取得導致當機情況的應用程式特定狀態。 您可以將任意鍵/值組合與當機報告建立關聯, 您可使用自訂鍵,在 Firebase 控制台中搜尋及篩選當機報告。

  • 您可以在 Crashlytics 資訊主頁中搜尋問題 符合自訂鍵的條件
  • 在控制台中查看特定問題時,您可以查看每個事件的相關自訂鍵 (「Keys」子頁籤),甚至可以依據自訂鍵篩選事件 (頁面頂端的「Filter」選單)。
,瞭解如何調查及移除這項存取權。

如果多次呼叫,現有鍵的新值將更新 記錄當機時,系統只會擷取最新的值。

Crashlytics.SetCustomKey(string key, string value);

新增自訂記錄訊息

記錄的訊息會與當機資料相關聯,您在查看特定當機事件時,即可在 Firebase Crashlytics 資訊主頁中看到這些訊息。

Crashlytics.Log(string message);

設定使用者 ID

您可以使用 ID 編號、符記或雜湊值來識別 應用程式使用者,而未揭露或傳輸任何使用者的 個人資訊您也可以將值設為空白字串,藉此清除值。這個值會在 Firebase Crashlytics 資訊主頁中顯示 查看特定當機事件

Crashlytics.SetUserId(string identifier);

取得導覽標記記錄

導覽標記記錄可讓您進一步瞭解使用者的互動情形 引發當機、一般錯誤或 ANR 事件。嘗試重現問題並進行偵錯時,這些記錄可能會很有幫助。

導覽標記記錄是由 Google Analytics 技術提供,因此如要取得導覽標記記錄, 需要 啟用 Google Analytics加入 Google Analytics 專用的 Firebase SDK 導入您的應用程式一旦符合這些需求,導覽標記記錄就會自動 查看詳細資料時,也會在「記錄檔」分頁中納入事件資料 並不瞭解該問題的來龍去脈

Analytics SDK 會自動記錄 screen_view 事件,讓導覽標記記錄顯示在當機、非致命或 ANR 事件前檢視的畫面清單。screen_view 麵包屑記錄包含 firebase_screen_class 參數。

麵包屑記錄也會填入您在使用者工作階段中手動記錄的任何自訂事件,包括事件的參數資料。這項資料有助於顯示導致當機、非致命錯誤或 ANR 事件的一系列使用者動作。

請注意,您可以控管 Google Analytics 資料的收集和使用方式,包括填入麵包屑記錄的資料。

啟用自選回報功能

根據預設,Crashlytics 會自動為應用程式的所有使用者收集當機報告。如要讓使用者進一步控管要傳送的資料,您可以 並選擇回報當機問題

如何停用自動收集功能,並僅針對所選項目初始化 Crashlytics 使用者,請在執行階段呼叫 Crashlytics 資料收集覆寫設定。覆寫值會在應用程式啟動期間持續存在,以便 Crashlytics 自動收集報表。如要選擇不使用自動當機回報功能,請傳遞 false 做為覆寫值。將值設為 false 時,必須等到下次執行應用程式,新值才會套用。

Crashlytics.IsCrashlyticsCollectionEnabled = true

管理當機深入分析資料

當機深入分析功能會將您的去識別化堆疊追蹤與其他 Firebase 應用程式的追蹤記錄進行比較,協助您解決問題,並讓您瞭解問題是否屬於更廣泛的趨勢。許多問題甚至能透過 Crash Insights 提供的資源 來協助偵測當機問題

Crash Insights 會使用匯總的當機資料,找出常見的穩定性趨勢。如果不想分享應用程式資料,可以選擇停用「當機深入分析」 前往 Crashlytics 問題清單頂端的「當機深入分析」選單 Firebase 控制台中。