You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter项目中Firebase Crashlytics无上报问题求助

排查Firebase Crashlytics无崩溃上报的常见遗漏点

1. 验证平台端Crashlytics配置完整性

Android端

  • 确认android/app/build.gradle中添加了Crashlytics插件:
    plugins {
        id 'com.android.application'
        id 'kotlin-android'
        id 'dev.flutter.flutter-gradle-plugin'
        id 'com.google.gms.google-services'
        id 'com.google.firebase.crashlytics' // 此插件必须添加
    }
    
  • 检查android/build.gradle的classpath依赖:
    dependencies {
        classpath 'com.google.gms:google-services:4.3.15'
        classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.5' // 确保版本适配
    }
    

iOS端

  • 确认Podfile已集成Crashlytics并执行过pod install,同时在ios/Runner/Info.plist中添加收集开关:
    <key>FirebaseCrashlyticsCollectionEnabled</key>
    <true/>
    
  • 检查GoogleService-Info.plist是否已正确添加到Xcode的Runner目标中(不是仅放在文件夹内)。

2. 强制启用Crashlytics数据收集

默认情况下,Debug模式可能禁用收集,需手动开启:

await Firebase.initializeApp(
  options: DefaultFirebaseOptions.currentPlatform,
);
// 主动开启收集
await FirebaseCrashlytics.instance.setCrashlyticsCollectionEnabled(true);

3. 注意Debug模式的上报规则

  • 触发崩溃后必须重启App(崩溃会终止进程,重启才能上报缓存的日志)
  • 控制台显示数据存在延迟,需等待5-10分钟
  • iOS模拟器需关闭Debug > Debug Workflow > Pause on Exception,否则崩溃会被调试器拦截

4. 调整初始化顺序与错误绑定逻辑

确保错误回调在runApp前完成绑定,可优化代码如下:

Future main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp(
    options: DefaultFirebaseOptions.currentPlatform,
  );
  await FirebaseCrashlytics.instance.setCrashlyticsCollectionEnabled(true);
  
  // 处理Flutter框架层错误
  FlutterError.onError = (errorDetails) {
    FirebaseCrashlytics.instance.recordFlutterFatalError(errorDetails);
  };
  
  // 处理异步错误
  runZonedGuarded(() {
    runApp(const App());
  }, (error, stackTrace) {
    FirebaseCrashlytics.instance.recordError(error, stackTrace, fatal: true);
  });
}

5. 核对Firebase项目基础配置

  • 确认Flutter应用的包名(Android)/Bundle ID(iOS)与Firebase控制台注册的完全一致(大小写敏感)
  • 检查google-services.json(Android)和GoogleService-Info.plist(iOS)为Firebase控制台下载的最新版本

6. 测试Release版本上报

Debug模式的上报机制存在限制,建议打包Release版本安装到设备上测试,部分情况下Debug模式的上报会被系统或调试工具抑制

内容的提问来源于stack exchange,提问作者rasitayaz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 21:48:14