在 Crashlytics 資訊主頁中取得可讀的當機報告


iOS+ (Apple 平台)

如果 Apple 平台應用程式使用 Crashlytics Unity SDK 8.2.0 以上版本,Firebase Unity 編輯器外掛程式會自動設定 Xcode 專案,以便上傳符號。下載最新版本

Android

針對 Android 應用程式,Crashlytics Unity SDK 8.6.1 以上版本會自動納入 NDK 當機回報功能,讓 Crashlytics 自動回報 Android 上的 Unity IL2CPP 當機事件。不過,如要在 Crashlytics 資訊主頁中查看原生程式庫當機的符號化堆疊追蹤記錄,您必須在建構期間使用 Firebase CLI 上傳符號資訊。

  1. 請務必使用 Crashlytics Unity SDK 8.6.1 以上版本。下載最新版本

  2. 設定符號上傳環境和專案:

    1. 按照操作說明安裝 Firebase CLI

      如果您已安裝 CLI,請務必更新至最新版本

    2. (僅適用於使用 Android API 級別 30 以上的應用程式) 更新應用程式的 AndroidManifest.xml 範本,以停用指標標記:

      1. 依序勾選「Android Player Settings」>「Publishing Settings」>「Build」>「Custom Main Manifest」方塊。

      2. 開啟位於 Assets/Plugins/Android/AndroidManifest.xml 的資訊清單範本。

      3. (僅適用於使用 8.8.0 之前 SDK 版本的應用程式) 請在應用程式標記中新增下列屬性:<application android:allowNativeHeapPointerTagging="false" ... />

  3. 建構專案並上傳符號。

    每次建立發布子版本或任何您想在 Firebase 主控台中查看符號化堆疊追蹤記錄的版本時,請完成這些步驟。

    1. 在「Build Settings」對話方塊中,執行下列任一操作:

      • 匯出至 Android Studio 專案以建構專案;或

      • 直接透過 Unity 編輯器建構 APK。
        建構前,請確認「Build Settings」對話方塊中已勾選「Create symbols.zip」核取方塊。

    2. 建置完成後,請執行下列 Firebase CLI 指令,產生 Crashlytics 相容的符號檔案,並將其上傳至 Firebase 伺服器:

      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:CLI 產生的符號檔案路徑

        • 匯出至 Android Studio 專案:PATH/TO/SYMBOLSunityLibrary/symbols 目錄,會在您透過 Gradle 或 Android Studio 建構應用程式後,在匯出的專案根目錄中建立。

        • 直接在 Unity 中建構 APK:PATH/TO/SYMBOLS 是建構完成後在專案根目錄中產生的壓縮符號檔案路徑 (例如:myproject/myapp-1.0-v100.symbols.zip)。

      查看使用 Firebase CLI 指令產生及上傳符號檔案的進階選項

      標記 說明
      --generator=csym

      使用舊版 cSYM 符號檔案產生器,而非預設的 Breakpad 產生器

      不建議使用。建議您使用預設的 Breakpad 符號檔案產生器。

      --generator=breakpad

      使用 Breakpad 符號檔案產生器

      請注意,符號檔案產生的預設值為 Breakpad。只有在您已在建構設定中新增 symbolGenerator { csym() },且想要覆寫該設定以改用 Breakpad 時,才使用這個標記。

      --dry-run

      產生符號檔案,但不會上傳

      如果您想檢查傳送的檔案內容,這個旗標就非常實用。

      --debug 提供其他偵錯資訊