繁体   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