当前位置: 首页 > 知识库问答 >
问题:

Firebase Crashlytics在Fabric迁移后不报告崩溃

锺离声
2023-03-14

最近,我们将应用程序从Fabric迁移到Firebase Crashlytics和Firebase Analytics。在android中,在遵循谷歌文档之后,一切都像一个魅力一样运行。问题是,在iOS中,我们没有得到关于Firebase Crashlytics的报告(在Firebase Analytics上工作得很好),但遵循了相同的文档之后。

路径:

Dev Google Service Info plist:支持文件>Firebase>Dev>GoogleService-Info-dev.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}" 
# 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)
   }
  [...]
}
       

我已经试过了:

  • 检查project和Firebase控制台的绑定id是否匹配
  • 检查包id是否有空格
  • 运行项目,按Stop键,在模拟器中打开应用程序(这样调试器就不会干扰崩溃)并强制崩溃
  • 等待崩溃出现超过2天
  • 将调试信息格式设置为dSYM文件DWARF。
  • 仅运行“${PODS_ROOT}/FireBaseCrashLytics/run”
  • 使用crashlytics.crashlytics().DidCrashDuringPreviousExecution()
  • 进行检查
  • 将此内容添加到AppDelegate:
        Crashlytics.crashlytics().setCrashlyticsCollectionEnabled(false)

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

共有1个答案

喻元龙
2023-03-14

运行脚本在我看来不太好。应该有一个或两个分开的命令:

  1. 运行(启动)FireBaseCrashlytics:“${PODS_ROOT}/FireBaseCrashlytics/run”(请参阅文档)
  2. 如果Firebase Crashlytics自身无法处理dSYM文件,则应将dSYM文件上载到Firebase,以获得经过去模糊处理的崩溃报告(请参阅文档)

所以我建议您编辑您的Firebase Crashlytics运行脚本,只运行Crashlytics(不上传任何dSYM文件)。如果有帮助,并且您可以在控制台中看到崩溃,那么您可以检查dSYM文件是否丢失(因此将需要另一个用于上传dSYM的脚本)。

 类似资料:
  • 我使用的是Android Studio 1.3.2 这是我的建筑Gradle 我在manifest中添加了api键(我添加了元数据com.crashlytics.apikey,以及io.fabric.apikey)。

  • Fabric SDK现在已被弃用,并将继续报告应用程序的崩溃,直到2020年11月15日。 我在哪里可以找到这些报告?我不能再登录到fabric dashboard了,它们也没有显示在firebase控制台中。

  • 我遵循了迁移指南文档。 构建签名Apk成功。 今天早上,当我检查Firebase Crashlytics控制台时。 没有与新版APK相关的崩溃报告。(我找不到老版本的崩溃报告。) 但是当我在PlayStore控制台上查看它时,我可以找到一些崩溃报告。 但只有坠机报告没有被追踪...为什么......

  • 我正在更新Fabric到新的Firebase,我的Firebase显示了旧的Fabric崩溃报告,而没有Firebase报告。现在我的firebaseCrashlytics版本是4.3.1。我添加了GoogleService.info.plist、脚本阶段“${PODS_ROOT}/FireBaseCrashLytics/run”和阶段的输入文件:${DWARF_DSYM_FOLDER_PATH}

  • 我正在尝试将我的代码从Fabric SDK迁移到Fabric Gaetway。目前,为了发送事务,我构建了TransactionProposalRequest对象,并使用channel.sendTransactionProposal方法将其发送到Fabric。作为响应,我得到了TransactionProposalACK的集合,然后我检查了其中是否有50%成功,如果成功,我将继续并将事务提交给or

  • 我迁移到Android studio,在我尝试运行该应用程序之前,一切似乎都正常。它在发射器活动中卡住,然后崩溃,打印: