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

Flutter iOS生产环境Firebase Crashlytics无崩溃日志求助

排查Flutter iOS生产版Firebase崩溃日志不显示的问题

核心检查项

  • 确认崩溃触发与同步延迟:生产版(App Store/TestFlight)崩溃需实际触发(比如手动抛出致命异常、模拟内存溢出),且设备需联网同步数据到Firebase,这个过程可能延迟数小时,不要刚测试就急于查看结果。
  • dSYM上传完整性验证:
    • 用命令xcrun dwarfdump --uuid <你的dSYM文件路径>生成UUID,和Firebase控制台「崩溃」>「dSYMs」页面的缺失UUID对比,确保上传的dSYM包含所有所需符号。
    • 上传时要对应正确的构建变体:如果生产版是Release变体,必须上传Release对应的dSYM,而非Debug版本。示例命令:firebase crashlytics upload-symbols --build-phase --ios --symbols <dSYM文件夹路径>
  • Flutter集成配置检查:
    • 确保pubspec.yaml中firebase_crashlytics依赖为最新稳定版,执行flutter pub upgrade firebase_crashlytics更新。
    • main.dart初始化Crashlytics时,生产版不能禁用采集:
      void main() async {
        WidgetsFlutterBinding.ensureInitialized();
        await Firebase.initializeApp();
        FlutterError.onError = FirebaseCrashlytics.instance.recordFlutterError;
        FirebaseCrashlytics.instance.setCrashlyticsCollectionEnabled(true);
        runApp(MyApp());
      }
      
  • iOS原生配置确认:
    • Xcode的Build Settings中,Release模式下Debug Information Format需设为DWARF with dSYM File。
    • 检查Info.plist中FirebaseCrashlyticsCollectionEnabled是否设为YES(生产版默认开启,若手动修改过需确认)。
    • Podfile中需包含pod 'Firebase/Crashlytics',且use_frameworks!配置正确,未禁用Crashlytics相关脚本。
  • 构建变体的Firebase配置匹配:
    • 若两个构建变体对应不同Firebase项目/GoogleService-Info.plist,需确认生产版的GoogleService-Info.plist正确且已添加到Xcode目标的Build Phases > Copy Bundle Resources中。
    • 生产版Bundle ID需与Firebase控制台注册的完全一致,大小写、字符都不能错。

额外验证步骤

  • 通过TestFlight分发生产版构建,触发崩溃后等待24小时再查看Firebase控制台(苹果崩溃数据同步到Firebase可能存在延迟)。
  • 查看Xcode的Organizer,确认生产版构建的dSYM是否正常生成,无丢失情况。
  • 执行firebase crashlytics check-symbols --project=<你的Firebase项目ID>,检查符号文件状态,查看是否有缺失或不匹配的提示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 16:10:33