Xcode 27 下 HBuilderX 运行 iOS 模拟器报错 `Unable to find application named 'Simulator'` 的解决办法
内容提要
Xcode 27 不再附带 Simulator.app,模拟器界面并入 DeviceHub.app,导致 HBuilderX 运行 iOS 模拟器时报错找不到 Simulator。解决办法:在 /Applications 下创建名为 Simulator.app 的转发壳,将 open -a Simulator 转发给 DeviceHub,并注册到 LaunchServices,重启 HBuilderX 即可恢复。
延伸解读
问题根源:Xcode 27 移除了 Simulator.app
Xcode 27 不再附带 Simulator.app,模拟器界面被整合进 DeviceHub.app。但 HBuilderX 启动模拟器时仍执行 open -a Simulator,系统找不到该应用,因此报错。模拟器核心组件(simctl、运行时、设备)并未损坏,只是启动方式变了。
临时方案:创建转发壳并注册
在 /Applications 下创建名为 Simulator.app 的转发壳,其可执行文件将 open -a Simulator 转发给 DeviceHub.app,并通过 lsregister 注册到 LaunchServices。这样 HBuilderX 的 open -a Simulator 就能找到并打开 DeviceHub,恢复原有流程。
使用注意与撤销方法
重启 HBuilderX 后重新运行到 iOS 模拟器即可。若 DeviceHub 未自动显示模拟器画面,需在左侧设备列表点击对应 iPhone。想撤销时,直接删除 /Applications/Simulator.app 即可;等 HBuilderX 官方适配 Xcode 27 后也可删除。
Q&A
Xcode 27 下 HBuilderX 运行 iOS 模拟器报错 Unable to find application named 'Simulator' 是什么原因?
Xcode 27 起不再附带 Simulator.app,模拟器界面并入了 DeviceHub.app。HBuilderX 启动模拟器时写死执行 open -a Simulator,但系统中已没有名为 Simulator 的应用,因此启动失败。
如何解决 Xcode 27 下 HBuilderX 找不到 Simulator 的问题?
在 /Applications 下创建一个名为 Simulator.app 的转发壳,将 open -a Simulator 转发给 DeviceHub,并注册到 LaunchServices,然后重启 HBuilderX 即可。
创建 Simulator.app 转发壳的具体步骤是什么?
1. 创建目录:mkdir -p "/Applications/Simulator.app/Contents/MacOS";2. 写入 Info.plist 文件;3. 创建可执行脚本 SimulatorLauncher,内容为 exec /usr/bin/open -a "/Applications/Xcode.app/Contents/Applications/DeviceHub.app" "$@";4. 赋予执行权限:chmod +x;5. 注册到 LaunchServices:lsregister -f /Applications/Simulator.app。
如何验证 Simulator.app 转发壳是否生效?
在终端执行 open -a Simulator,如果 DeviceHub 正常打开,则说明配置成功。
如果 DeviceHub 打开后没有自动显示模拟器画面怎么办?
在 DeviceHub 左侧设备列表中点击对应的 iPhone 即可显示模拟器画面。
如何撤销对 Simulator.app 的修改?
直接删除 /Applications/Simulator.app 即可。等 HBuilderX 官方适配 Xcode 27 后也可以删除。