集成Firebase Crashlytics后模拟崩溃无"Completed report submission"日志问题排查
iOS Firebase Crashlytics无"Completed report submission"日志的排查方案
以下是几个常见原因和对应的解决思路:
1. 日志被过滤或延迟上报
- 检查Xcode控制台的搜索框,避免因过滤词屏蔽了
FirebaseCrashlytics相关日志。 - 调试模式下Crashlytics不会即时上报,可等待1-2分钟,或多次重启应用后再观察日志。
2. FIRDebugEnabled配置错误
- 打开Run Scheme的Arguments Passed On Launch,确认
-FIRDebugEnabled拼写正确,且是添加在启动参数中(而非环境变量)。 - 可同时添加
-FIRAnalyticsDebugEnabled,辅助验证Firebase初始化状态是否正常。
3. Firebase初始化不完整
- 检查
AppDelegate或SceneDelegate中是否在应用启动初期调用了FirebaseApp.configure(),确保未被异步逻辑或条件判断拦截。 - 查看控制台是否有
FirebaseApp configuration successful日志,确认Firebase初始化成功。
4. 网络或本地缓存限制
- 确保模拟器网络连接正常,Crashlytics上报依赖网络。
- 删除应用后重新安装,重置Crashlytics本地缓存,再重复崩溃-重启流程。
- 在模拟器设置>隐私与安全性>分析与改进中,确认"共享iPhone分析"处于开启状态,避免系统阻止上报。
5. Crashlytics集成步骤遗漏
- 检查
Podfile中是否包含pod 'Firebase/Crashlytics'和pod 'Firebase/Analytics',且已执行pod install。 - 确认Xcode的Build Phases中添加了Crashlytics的Run Script,脚本内容为
"${PODS_ROOT}/FirebaseCrashlytics/run",且位于Compile Sources之后执行。 - 检查Build Settings中的
DEBUG_INFORMATION_FORMAT是否设置为DWARF with dSYM File,这是Crashlytics解析崩溃日志的必要条件。
6. 崩溃测试方式错误
- 不要在Xcode调试会话中触发崩溃:先点击Xcode停止按钮,手动在模拟器中启动应用后再触发崩溃,否则Xcode会捕获崩溃,导致Crashlytics无法获取报告。
- 测试崩溃需为真实崩溃(如
fatalError()、数组越界等),避免使用自定义异常捕获逻辑,否则Crashlytics无法识别。
内容的提问来源于stack exchange,提问作者iosdev
相关产品推荐
相关产品推荐

