iOS端@react-native-firebase/crashlytics已检测,未收到崩溃报告
React Native Firebase Crashlytics 不显示崩溃报告的排查方案
1. 确认崩溃触发方式是否合规
- 避免使用模拟器/设备的强制退出操作,Crashlytics无法识别这类非代码触发的崩溃。请用代码主动触发:
import crashlytics from '@react-native-firebase/crashlytics'; // 示例:按钮点击触发崩溃 const triggerCrash = () => { crashlytics().crash(); }; - 触发崩溃后必须重启App,Crashlytics会在下次启动时自动上报崩溃数据。
2. 检查平台配置细节
Android
- 确认
android/app/build.gradle中已添加Crashlytics插件:apply plugin: 'com.google.firebase.crashlytics' - 验证
google-services.json是否正确放置在android/app/目录,且文件内的包名与Firebase项目配置一致。 - Debug模式下需开启上报开关(默认关闭):
android { buildTypes { debug { firebaseCrashlytics { mappingFileUploadEnabled true } } } }
iOS
- 确认
GoogleService-Info.plist已添加到Xcode项目中,且FIRAnalyticsCollectionEnabled字段设为YES。 - 在Xcode的Build Settings中,将
Debug Information Format设为DWARF with dSYM File,确保Crashlytics能解析崩溃堆栈。 - 崩溃触发后手动重启App,并保持设备联网,等待5-10分钟让数据完成上传。
3. 修复依赖版本兼容性问题
你的React Native版本为0.67.4,而@react-native-firebase v18.x要求RN版本至少为0.69.x,版本不兼容会导致上报异常。建议降级@react-native-firebase至适配RN 0.67的版本(如v15.x或v16.x),可参考官方版本兼容说明调整。
4. 验证Crashlytics初始化状态
- 在App启动时添加日志,确认Crashlytics是否正常启用:
import crashlytics from '@react-native-firebase/crashlytics'; import { useEffect } from 'react'; useEffect(() => { const checkCrashlyticsStatus = async () => { const isEnabled = await crashlytics().isCrashlyticsCollectionEnabled(); console.log('Crashlytics 启用状态:', isEnabled); }; checkCrashlyticsStatus(); }, []); - 若返回
false,需手动开启收集:crashlytics().setCrashlyticsCollectionEnabled(true);
5. 确认Firebase控制台配置
- 检查Firebase项目中关联的App包名(Android)/Bundle ID(iOS)是否与本地项目完全一致,避免拼写错误。
- 上报存在延迟,若上述配置均正确,可等待10-15分钟后再查看控制台。
内容的提问来源于stack exchange,提问作者quadfuture in
相关产品推荐
相关产品推荐

