Flutter iOS 无法识别模拟器?我踩到的一个「iOS 26 模拟器」大坑

8 阅读3分钟

明明启动了模拟器,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,一切恢复正常。****


如果你也踩到了这个坑,希望这篇文章能帮你少走一点弯路。