自訂 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 回報這些例外狀況 視為嚴重事件,方法是將 您找到 trueCrashlytics.ReportUncaughtExceptionsAsFatal 資源 在 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 資訊主頁中搜尋問題 符合自訂鍵的條件
  • 在控制台中查看特定問題時,可以查看 個別事件的相關自訂鍵 (「鍵」子分頁),甚至篩選 事件 (按頁面頂端的「篩選器」選單)。

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

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 控制台