簡體   English   中英

Firebase Crashlytics 在 Fabric 遷移后未報告崩潰

[英]Firebase Crashlytics not reporting crashes after Fabric Migration

最近,我們將應用程序從 Fabric 遷移到 Firebase Crashlytics 和 Firebase Analytics。 在 android 中,遵循 Google 文檔后,一切都像魅力一樣。 問題是在 iOS 中,我們沒有得到關於 Firebase Crashlytics 的報告(在 Firebase Analytics 上完美運行)在遵循相同的文檔之后。

路徑:

開發 Google 服務信息 Plist: Supporting Files > Firebase > Dev > GoogleService-Info-Dev.plist

Prod Google 服務信息 Plist: Supporting Files > Firebase > Prod > GoogleService-Info-Prod.plist

空 Plist: Supporting Files > GoogleService-Info.plist

構建階段:

運行腳本(GoogleService-Info.plist 分配)

if [ "${CONFIGURATION}" = "Release" ]; then
    GOOGLE_SERVICE_INFO_PLIST_FROM="${PROJECT_DIR}/Supporting Files/Firebase/Prod/GoogleService-Info-Prod.plist"
else
    GOOGLE_SERVICE_INFO_PLIST_FROM="${PROJECT_DIR}/Supporting Files/Firebase/Dev/GoogleService-Info-Dev.plist"
fi

GOOGLE_SERVICE_INFO_PLIST_TO="${PROJECT_DIR}/Supporting Files/GoogleService-Info.plist" 
cp "${GOOGLE_SERVICE_INFO_PLIST_FROM}" "${GOOGLE_SERVICE_INFO_PLIST_TO}" 

運行腳本(Firebase Crashlytics 運行)

# Run Firebase Crashlytics

"${PODS_ROOT}/FirebaseCrashlytics/run" -gsp "${PROJECT_DIR}/Supporting\ Files/GoogleService-Info.plist" 

應用委托:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
       
   // Set Google -Info.plist for enviroment
       let filePath = Bundle.main.path(forResource: ULima.getInfoPlist(buildType: ULima.buildType), ofType: "plist")
   if let fileopts = FirebaseOptions(contentsOfFile: filePath!) {
       // Use Firebase library to configure APIs and Crashlytics
       FirebaseApp.configure(options: fileopts)
   }
  [...]
}
       

Crashlytics 控制台:

Crashlytics 控制台

我已經嘗試過的:

  • 檢查項目中的捆綁包 ID 和 Firebase 控制台是否匹配
  • 檢查bundle id是否有空空間
  • 運行項目,按停止,在模擬器中打開應用程序(因此調試器不會干擾崩潰分析)並強制崩潰
  • 等待超過 2 天的崩潰才出現
  • 使用 dSYM 文件將調試信息格式設置為 DWARF。
  • 只運行"${PODS_ROOT}/FirebaseCrashlytics/run"
  • 檢查Crashlytics.crashlytics().didCrashDuringPreviousExecution()
  • 將此添加到AppDelegate
        Crashlytics.crashlytics().setCrashlyticsCollectionEnabled(false)

        Crashlytics.crashlytics().checkForUnsentReports { _ in
            Crashlytics.crashlytics().sendUnsentReports()
        }

運行腳本對我來說看起來不太好。 應該有一個或兩個單獨的命令:

  1. 運行(開始)Firebase Crashlytics: "${PODS_ROOT}/FirebaseCrashlytics/run" (參見 文檔
  2. 如果 Firebase Crashlytics 無法自行處理 dSYM 文件,您應該將 dSYM 文件上傳到 Firebase 以獲得去混淆的崩潰報告(請參閱文檔

所以我建議你編輯你的 Firebase Crashlytics運行腳本只是為了運行 Crashlytics(不上傳任何 dSYM 文件)。 如果它有幫助並且您可以在控制台中看到崩潰,那么您可以檢查 dSYM 文件是否丟失(因此需要另一個用於上傳 dSYM 的腳本)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM