Flutter集成Firebase Crashlytics遇连接错误:无法访问firebase-settings.crashlytics.com
解决Flutter集成Firebase Crashlytics时无法连接firebase-settings.crashlytics.com的问题
问题描述
按照Firebase官方文档集成Crashlytics与Analytics后,运行应用出现核心连接错误:
E/SessionConfigFetcher( 6132): Error failing to fetch the remote configs: Failed to connect to firebase-settings.crashlytics.com/:::443 E/FirebaseCrashlytics( 6132): Settings request failed.
主动抛出异常时,进一步提示:
E/FirebaseCrashlytics( 9191): Cannot send reports. Timed out while fetching settings.
解决方案
1. 排查网络连通性
- 确认设备/模拟器可正常访问外网,避免公司内网、VPN等拦截Firebase域名请求,可切换至手机流量测试。
- 直接在浏览器访问
https://firebase-settings.crashlytics.com,只要不出现连接超时(哪怕返回404),说明域名可正常解析。
2. 验证Firebase配置文件
- 确保
google-services.json(Android)/GoogleService-Info.plist(iOS)是从Firebase控制台对应项目下载的,包名/bundle ID与Flutter项目完全匹配:- Android:检查
android/app/build.gradle中的applicationId和google-services.json里client下的package_name一致。 - iOS:检查
Info.plist中的CFBundleIdentifier和GoogleService-Info.plist里的BUNDLE_ID一致。
- Android:检查
3. 配置Android网络安全规则
在android/app/src/main/res/xml创建network_security_config.xml文件,添加允许Crashlytics相关域名的配置:
<?xml version="1.0" encoding="utf-8"?> <network-security-config> <domain-config cleartextTrafficPermitted="false"> <domain includeSubdomains="true">firebase-settings.crashlytics.com</domain> <domain includeSubdomains="true">crashlyticsreports-pa.googleapis.com</domain> <domain includeSubdomains="true">firebaselogging-pa.googleapis.com</domain> </domain-config> </network-security-config>
然后在AndroidManifest.xml的application标签中引用该配置:
<application ... android:networkSecurityConfig="@xml/network_security_config">
4. 检查Android Gradle配置
- 项目根目录
build.gradle中确认添加了Crashlytics依赖:dependencies { classpath 'com.google.gms:google-services:4.4.0' classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.9' // 其他依赖 } - app模块
build.gradle中确认应用了相关插件:apply plugin: 'com.android.application' apply plugin: 'com.google.gms.google-services' apply plugin: 'com.google.firebase.crashlytics' - 确保
minSdkVersion不低于16(Crashlytics最低要求)。
5. 清理缓存并重新构建
- 执行以下命令清理缓存:
flutter clean rm -rf android/.gradle ios/Pods flutter pub get cd ios && pod install && cd .. - 卸载设备上的旧应用,重新编译安装。
6. 调整设备DNS设置
若设备默认DNS无法解析Firebase域名,手动切换至公共DNS(如8.8.8.8或1.1.1.1)后再次测试。
7. 测试Release模式
Debug模式下Crashlytics可能延迟上报或默认禁用,切换至Release模式构建应用并测试崩溃上报。
内容的提问来源于stack exchange,提问作者J Bulls Infotech
相关产品推荐
相关产品推荐

