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

如何在iOS Flutter应用中集成Crashlytics?求详细步骤及崩溃列表查看方法

iOS Flutter集成Firebase Crashlytics 详细指南

一、前提确认

  • 确保Flutter项目已完成Firebase核心集成(未完成需先完成此步骤)
  • 确保Xcode版本≥14.0,Flutter SDK使用3.x及以上稳定版

二、依赖配置

  1. 在项目根目录的pubspec.yaml中添加依赖:
dependencies:
  firebase_core: ^2.20.0
  firebase_crashlytics: ^3.4.0

执行命令安装依赖:

flutter pub get
  1. iOS端Pod配置:
  • 打开ios/Podfile,确保顶部平台版本配置为:
platform :ios, '13.0' # Crashlytics最低要求iOS13
  • 进入ios目录更新Pod:
cd ios && pod install --repo-update

三、Xcode项目配置

  1. 打开ios/Runner.xcworkspace,进入Build Phases:

    • 点击左上角+,选择New Run Script Phase,粘贴以下脚本:
    "${PODS_ROOT}/FirebaseCrashlytics/run"
    
    • 拖动该Run Script Phase到Compile Sources之后、Link Binary With Libraries之前
    • 在Run Script的Input Files中添加:
      $(SRCROOT)/$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)
      
  2. 调试模式开启崩溃收集(可选,方便测试):

    • 点击菜单栏Product > Scheme > Edit Scheme
    • 选择Run,切换到Arguments标签
    • 在Environment Variables中添加FIREBASE_CRASHLYTICS_COLLECTION_ENABLED,值设为YES

四、Flutter代码集成

在main.dart中初始化并启用Crashlytics:

import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_crashlytics/firebase_crashlytics.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();

  // 配置崩溃收集逻辑
  if (kDebugMode) {
    // 调试模式开启收集,方便测试
    FirebaseCrashlytics.instance.setCrashlyticsCollectionEnabled(true);
    FlutterError.onError = FirebaseCrashlytics.instance.recordFlutterError;
    PlatformDispatcher.instance.onError = (error, stackTrace) {
      FirebaseCrashlytics.instance.recordError(error, stackTrace);
      return true;
    };
  } else {
    // 发布模式收集致命错误
    FlutterError.onError = FirebaseCrashlytics.instance.recordFlutterFatalError;
    PlatformDispatcher.instance.onError = (error, stackTrace) {
      FirebaseCrashlytics.instance.recordError(error, stackTrace, fatal: true);
      return true;
    };
  }

  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: const Text('Crashlytics测试')),
        body: Center(
          child: ElevatedButton(
            onPressed: () {
              // 触发测试崩溃,重启后会上报
              FirebaseCrashlytics.instance.crash();
            },
            child: const Text('触发测试崩溃'),
          ),
        ),
      ),
    );
  }
}

五、查看崩溃列表

  • 构建并运行应用(Release模式或开启调试收集的Debug模式)
  • 触发崩溃后重启应用(Crashlytics在下次启动时上报崩溃数据)
  • 等待5-10分钟,登录Firebase控制台进入对应项目的Crashlytics页面,即可查看崩溃列表

六、常见问题排查

  • 崩溃不上报:
    • 确认GoogleService-Info.plist是从Firebase控制台下载的对应项目文件,且已正确添加到Xcode项目
    • 检查Run Script Phase的脚本路径和Input Files配置是否正确
    • 确保设备有网络连接,崩溃数据需联网上报
    • 检查Xcode Build Settings中,Debug Information Format在Release模式下设置为DWARF with dSYM File
    • 尝试删除ios/Pods文件夹,重新执行pod install

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 15:00:00