前言
为何调试 Flutter Engine ?
- 学习
- 查 crash
准备工作
1. Flutter 版本
Flutter 3.7.12 • Engine 1a65d409c7不一定是这个版本,但是你要记住你自己选择的版本,并找到对应的 dsym。
2. 下载官方 iOS dSYM
# 下载 (115 MB)
curl -L -o Flutter.dSYM.zip \
"https://storage.googleapis.com/flutter_infra_release/flutter/1a65d409c7a1438a34d21b60bf30a6fd5db59314/ios-release/Flutter.dSYM.zip"
# 解压
unzip -o -q Flutter.dSYM.zip3. UUID 验证
dSYM UUID:
x86_64 (Simulator): 4C4C4472-5555-3144-A169-E9E012AAE73B
arm64 (Device): 4C4C4415-5555-3144-A112-3C0FFF4C00D2Engine Binary UUID:
模拟器 (ios-arm64_x86_64-simulator):
x86_64: 4C4C4472-5555-3144-A169-E9E012AAE73B ✅真机 (ios-arm64):
arm64: 4C4C4415-5555-3144-A112-3C0FFF4C00D2 ✅完美匹配!模拟器和真机都能用!
这一步搞定后,后面的就很 easy 了。
步骤 1: 创建测试项目
cd ~/projs/analyse_flutter_source
flutter create ios_debug_demo --platforms=ios
cd ios_debug_demo步骤 2: 配置 LLDB Source Mapping
编辑 ~/.lldbinit(一次性配置):
# Flutter Engine 源码映射
settings set target.source-map /Users/runner/work/engine/src /Users/mac/flutter-engine/src步骤 3: 在 Xcode 中打开项目
cd ~/projs/analyse_flutter_source/ios_debug_demo
flutter build ios --release --simulator
open ios/Runner.xcworkspace步骤 4: 配置 Xcode
- 选择模拟器目标:Product → Destination → iPhone 15 Pro (或任意模拟器)
配置 Scheme:
- Product → Scheme → Edit Scheme...
- Run → Info → Build Configuration: Release
- Run → Options → ✅ Debug executable
步骤 5: 添加 dSYM
方法 1: 拖拽到 Xcode
直接把 ~/projs/analyse_flutter_source/Flutter.dSYM 拖到 Xcode 的 Project Navigator
方法 2: 命令行复制
# 复制到项目构建目录
cp -R ~/projs/analyse_flutter_source/Flutter.dSYM \
~/Library/Developer/Xcode/DerivedData/Runner-*/Build/Products/Release-iphonesimulator/步骤 6: 设置断点
符号断点(iOS 工程师的最爱):
- Debug → Breakpoints → Create Symbolic Breakpoint
- Symbol:
-[FlutterViewController viewDidLoad] - Module:
Flutter(可选,但推荐)
最后看一下效果:
