明明启动了模拟器,flutter devices 也能看到,
但 flutter run / Xcode 却一直报错:
Unable to find a destination matching the provided destination specifier****
这篇文章记录一次真实踩坑经历,以及最终定位到的根本原因。
一、问题现象
Flutter 项目在运行 iOS 模拟器时,始终无法启动 App。
典型报错信息
xcodebuild: error: Unable to find a destination matching the provided destination specifier
Available destinations for the "Runner" scheme:
- My Mac (Designed for iPad/iPhone)
- Any iOS Device
- Any iOS Simulator Device
Xcode 同时弹窗提示:
A build only device cannot be used to run this target.
No supported iOS devices are available.
但此时的真实状态却是:
- ✅ Simulator App 已启动
- ✅ Xcode 里能看到“模拟器”
- ✅ Flutter 甚至能识别到设备
二、最迷惑人的地方(关键矛盾)
执行:
flutter devices
输出如下:
2 connected devices:
iPhone 17 Pro (mobile) • C9DE2E68-40FC-45A9-865B-7088E6B09802 • ios • com.apple.CoreSimulator.SimRuntime.iOS-26-2 (simulator)
Chrome (web) • chrome • web-javascript
注意这一行:
com.apple.CoreSimulator.SimRuntime.iOS-26-2
👉 iOS 26.2 模拟器****
三、真相揭晓:不是 Flutter 的问题,而是 iOS 26 模拟器
核心结论
Flutter 能看到 iOS 26 模拟器,但 Xcode / xcodebuild 不承认它是可运行目标****
原因在于工具链差异:
-
flutter devices 使用的是 CoreSimulator API(识别较宽松)
-
xcodebuild 只接受 Xcode 官方稳定支持的 iOS Runtime****
-
iOS 26.x 当前属于未来 / Beta Runtime
于是就出现了一个非常坑的状态:
| 工具 | 表现 |
|---|---|
| Simulator App | 能打开 |
| flutter devices | 能识别 |
| xcodebuild | ❌ 无法作为 destination |
| Xcode Run | ❌ build only device |
四、为什么会出现 “Any iOS Simulator Device”?
当 Xcode 找不到任何可用的 iOS Runtime 时,只能退化成:
Any iOS Simulator Device (placeholder)
⚠️ 这是一个 占位符,只能 Build,不能 Run。
所以就会出现非常反直觉的现象:
模拟器明明启动了,但 Xcode 说“没有可用 iOS 设备”
五、正确 & 稳定的解决方案(强烈推荐)
✅ 不要使用 iOS 26 模拟器
目前 Flutter + Xcode 稳定支持的组合是:
-
iOS 17.x
-
iOS 18.x(取决于 Xcode 版本)
在正式开发阶段,不建议使用未来版本的 iOS 模拟器。
六、一步到位修复方案
1️⃣ 删除 iOS 26 模拟器
xcrun simctl shutdown all
xcrun simctl delete C9DE2E68-40FC-45A9-865B-7088E6B09802
也可以在:
Xcode → Window → Devices and Simulators
中手动删除。
2️⃣ 安装稳定 iOS Runtime
打开:
Xcode → Settings → Platforms
确保至少安装一个:
- ✅ iOS 17.x(强烈推荐)
- 或 iOS 18.x
3️⃣ 新建模拟器
Xcode → Window → Devices and Simulators → Simulators → +
配置示例:
-
Device Type:iPhone 15 Pro
-
iOS Version:17.x
创建完成后启动该模拟器。
4️⃣ 验证 Flutter 是否识别正确
flutter devices
你应该看到类似:
iPhone 15 Pro • ios • com.apple.CoreSimulator.SimRuntime.iOS-17-4 (simulator)
❌ 不要再出现 iOS-26-2****
5️⃣ 重新运行项目
flutter clean
flutter run -d ios
🎉 问题解决。
七、为什么不推荐“硬刚 iOS 26”?
除非你同时满足:
-
Xcode Beta
-
Flutter beta / master channel
-
macOS Beta
-
所有 CocoaPods 依赖都已适配
否则:
开发成本高 + 稳定性差 + 排错成本极高****
不适合日常开发。
八、总结一句话
不是你没启动模拟器,也不是 Flutter 配置错了****
真正的原因是:
你使用了 iOS 26 模拟器,而当前 Flutter + Xcode 还跑不了它****
👉 换回 iOS 17 / 18,一切恢复正常。****
如果你也踩到了这个坑,希望这篇文章能帮你少走一点弯路。