Xcode 27 下 HBuilderX 运行 iOS 模拟器报错 `Unable to find application named 'Simulator'` 的解决办法

出了什么问题

升级 Xcode 27 后,在 HBuilderX 里运行到 iOS 模拟器基座,直接报错:

Command failed: open -a Simulator
Unable to find application named 'Simulator'

Xcode 26 及以前一直正常,这是 Xcode 27 才出现的问题。

什么原因

Xcode 27 起不再附带 Simulator.app,模拟器界面并入了新的 DeviceHub.app:

ls /Applications/Xcode.app/Contents/Applications/
# DeviceHub.app 在这里,Simulator.app 没了

模拟器本体没坏(simctl、运行时、设备都正常),但 HBuilderX 启动模拟器时写死执行 open -a Simulator,系统里已经没有叫这个名字的应用,于是启动失败。这是 DCloud 论坛的已知问题,官方暂未适配。

怎么解决

在 /Applications 下创建一个名为 Simulator.app 的转发壳,把 open -a Simulator 转给 DeviceHub:

mkdir -p "/Applications/Simulator.app/Contents/MacOS"

cat > "/Applications/Simulator.app/Contents/Info.plist" <<'EOF'




	CFBundleName
	Simulator
	CFBundleDisplayName
	Simulator
	CFBundleIdentifier
	com.local.simulator-launcher
	CFBundleExecutable
	SimulatorLauncher
	CFBundlePackageType
	APPL
	CFBundleShortVersionString
	1.0
	CFBundleVersion
	1.0
	LSUIElement
	
	LSMinimumSystemVersion
	13.0


EOF

cat > "/Applications/Simulator.app/Contents/MacOS/SimulatorLauncher" <<'EOF'
#!/bin/bash
# Xcode 27 起不再附带 Simulator.app,模拟器界面由 DeviceHub 承担,
# 把 open -a Simulator 转发给 DeviceHub。
exec /usr/bin/open -a "/Applications/Xcode.app/Contents/Applications/DeviceHub.app" "$@"
EOF

chmod +x "/Applications/Simulator.app/Contents/MacOS/SimulatorLauncher"

# 注册到 LaunchServices
/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister \
  -f /Applications/Simulator.app

验证一下:

open -a Simulator   # DeviceHub 正常打开即可

然后重启 HBuilderX,重新运行到 iOS 模拟器即可恢复和以前一样的流程。如果 DeviceHub 里没自动弹出模拟器画面,在它左侧设备列表点一下对应的 iPhone。

想撤销的话,删掉 /Applications/Simulator.app 就行;等 HBuilderX 官方适配 Xcode 27 后也可以删。

添加评论
点赞收藏
点踩分享查看原文
评论
?
参与讨论