前往 Crashlytics 資訊主頁取得易讀的當機報告

iOS+ (Apple 平台)

如果是使用 Crashlytics Unity SDK 8.2.0 以上版本的 Apple 平台應用程式,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」>「Publish 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 signature.zip」核取方塊。

    2. 建構完成後,請產生與 Crashlytics 相容的符號檔案,並執行下列 Firebase CLI 指令,將檔案上傳至 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 產生器

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

      --generator=breakpad

      使用 Breakpad 符號檔案產生器

      請注意,產生符號檔案的預設值是 Breakpad。只有在建構設定中新增 symbolGenerator { csym() },並想要改為使用 Breakpad 時,才能使用這個旗標。

      --dry-run

      產生符號檔案但不會上傳

      如要檢查已傳送的檔案內容,這個標記就非常實用。

      --debug 提供其他偵錯資訊