Firebase Crashlytics无法接收Unity编辑器及设备端测试崩溃问题求助
环境配置
- Unity editor version: 2020.3.20f1
- Firebase Unity SDK version: firebase_unity_sdk_8.6.2
- 额外接入SDK:Admob SDK
- 开发环境:Windows端Unity编辑器
- 目标平台:Android
- 脚本运行时:IL2CPP
- API兼容级别:.NET 4.x
问题描述
Crashlytics一直处于等待上报状态,但Firebase Analytics可正常接收数据。
已按照官方文档要求在项目中安装了Crashlytics SDK并完成相关配置,仅跳过了第4步的符号文件上传环节。
编写的Firebase初始化脚本如下:
public static FirebaseManager Instance; private FirebaseApp app; private void Awake() { Instance = this; } private void Start() { InitFB(); } private void InitFB() { // Initialize Firebase FirebaseApp.CheckAndFixDependenciesAsync().ContinueWithOnMainThread(task => { var dependencyStatus = task.Result; if (dependencyStatus == DependencyStatus.Available) { app = FirebaseApp.DefaultInstance; FirebaseApp.LogLevel = LogLevel.Debug; Debug.Log(dependencyStatus); } else { Debug.LogError(System.String.Format( "Could not resolve all Firebase dependencies: {0}", dependencyStatus)); } }); }
测试脚本如下:
int updatesBeforeException; void Start() { updatesBeforeException = 0; } private void Update() { throwExceptionEvery60Updates(); } void throwExceptionEvery60Updates() { if (updatesBeforeException > 0) { updatesBeforeException--; } else { updatesBeforeException = 60; throw new System.Exception("test exception please ignore"); } }
在编辑器中运行应用时,Firebase初始化返回可用状态,触发测试崩溃也正常抛出,但Crashlytics后台始终收不到崩溃上报数据。

排查方案
- Unity编辑器下触发的崩溃/异常不会被Crashlytics上报,Crashlytics仅会捕获真机/模拟器运行打包后的应用产生的异常,你需要打包成Android APK安装到设备上触发测试异常,才能收到上报数据。
- 检查Android打包配置中是否开启了
Development Build,如果关闭了Development Build,默认不会上报非致命异常,需要手动添加配置:在初始化Firebase之后添加Crashlytics.ReportUncaughtExceptionsAsFatal = true;,同时确保Crashlytics.IsCrashlyticsCollectionEnabled设置为true。 - 不要跳过符号文件上传环节,即使是测试阶段也需要完成符号文件配置,否则Crashlytics后台无法识别收到的崩溃数据,会导致数据不展示。
- 触发测试异常后需要完全退出应用再重新打开,Crashlytics默认会在应用下一次冷启动时才会执行上报操作,异常触发后直接留在崩溃页面不会触发上报逻辑。
- 检查AndroidManifest.xml中是否正确配置了Internet权限,Crashlytics上报需要网络权限支持。
- 如果接入了Admob SDK,检查是否存在SDK冲突,可以尝试临时移除Admob SDK后再测试上报逻辑,确认是否是多SDK冲突导致上报失败。
内容的提问来源于stack exchange,提问作者YouCanCallMe Syarif
相关产品推荐
相关产品推荐

