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

Flutter真机调试随机崩溃,因内存过高被系统终止求解决

问题概述

Flutter App在M4芯片2024款MacBook Air + Xcode15.3 + iOS17.4.1真机调试时,会随机因内存占用过高崩溃,崩溃无固定触发点;但在Intel芯片2019款MacBook Air + Xcode14 + iOS15环境下完全正常。Xcode提示系统因内存占用过高杀死App,用Xcode分析工具未找到内存泄漏点。

Xcode错误详情:

The app “Runner” has been killed by the operating system because it is using too much memory.
Domain: IDEDebugSessionErrorDomain
Code: 11
Recovery Suggestion: Use a memory profiling tool to track the process memory usage.

flutter doctor -v显示环境无异常,Flutter版本为3.19.5,运行在Rosetta模式下。


可行解决方案

1. 关闭Rosetta运行Flutter

M系列芯片Mac建议使用原生arm64模式运行Flutter,避免Rosetta带来的兼容性问题:

  • 右键终端图标 → 显示简介 → 取消勾选「使用Rosetta打开」
  • 执行flutter clean && flutter pub get,重新编译运行App

2. 调整Xcode调试配置

Xcode15+在M系列芯片上的调试机制可能额外占用内存,修改以下配置:

  • 打开Product > Scheme > Edit Scheme → 切换到Run > Diagnostics标签页:
    • 勾选Memory Graph,设置触发时机为On Resource Exception
    • 开启Malloc Stack Logging,选择Live Allocations Only
    • 暂时关闭View Debugging(部分场景下该功能会导致内存异常)

3. 升级Flutter到最新稳定版

Flutter 3.19.5发布于2024年3月,后续版本修复了大量M系列芯片与Xcode15的兼容问题:

flutter channel stable
flutter upgrade

升级后执行flutter clean && flutter pub get再测试。

4. 排查第三方依赖的arm64兼容性

旧版第三方插件可能未适配M系列芯片,导致内存泄漏:

  • 执行flutter pub outdated查看依赖版本,升级所有依赖到最新稳定版
  • 重点检查图片加载、WebView、原生交互类插件(如webview_flutter、image_picker)

5. 用Flutter DevTools深度分析内存

Xcode工具对Flutter Dart层内存泄漏的检测不够精准,改用DevTools:

  • 执行flutter pub global activate devtools
  • 运行App后执行flutter devtools,切换到Memory标签页
  • 录制内存快照,对比不同时间点的对象占用,重点排查未释放的State、StreamController、AnimationController类

6. 禁用Xcode CoreDevice调试模式

Xcode15引入的CoreDevice可能存在兼容性问题,切换到传统调试模式:

  • 打开Xcode偏好设置 → Locations → 清空Derived Data
  • 终端执行:
defaults write com.apple.dt.Xcode IDESkipCoreDeviceEnabled -bool YES

重启Xcode后重新运行App


补充排查方向

如果以上方案无效,可创建新的Flutter空白项目,逐步迁移现有代码和依赖,排查是否是Podfile、Info.plist等配置文件的兼容性问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 10:47:02