如何在iOS Flutter应用中集成Crashlytics?求详细步骤及崩溃列表查看方法
iOS Flutter集成Firebase Crashlytics 详细指南
一、前提确认
- 确保Flutter项目已完成Firebase核心集成(未完成需先完成此步骤)
- 确保Xcode版本≥14.0,Flutter SDK使用3.x及以上稳定版
二、依赖配置
- 在项目根目录的
pubspec.yaml中添加依赖:
dependencies: firebase_core: ^2.20.0 firebase_crashlytics: ^3.4.0
执行命令安装依赖:
flutter pub get
- iOS端Pod配置:
- 打开
ios/Podfile,确保顶部平台版本配置为:
platform :ios, '13.0' # Crashlytics最低要求iOS13
- 进入ios目录更新Pod:
cd ios && pod install --repo-update
三、Xcode项目配置
打开
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)
- 点击左上角
调试模式开启崩溃收集(可选,方便测试):
- 点击菜单栏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
相关产品推荐
相关产品推荐

