Hive Hive
Sign in

tuist run fails to launch a simulator on Xcode 27

GitHub issue · Open

Metadata
Source
tuist/tuist #12740
Updated
Aug 31, 2026
Details

What happened?

In Xcode 27, Simulator.app has been completely removed and replaced with DeviceHub.app which presents a unified window that manages all simulated devices. On systems with only Xcode 27 installed and selected, this results in any tuist command that also automatically launches a Simulator to fail with an error.

The expected behaviour is that Tuist is able to use the new DeviceHub.app to open a Simulator that the user has selected.

simctl remains available, but the CLI interface for opening DeviceHub.app has changed (e.g. pass devices://manage/select?id=<uuid> to the open command to focus a device).

How do we reproduce it?

  1. Install Xcode 27 and ensure it is selected with xcode-select (or uninstall other Xcode versions). Also make sure Simulator.app from a previous Xcode version is not already running as Tuist falls back to a booted simulator.
  2. Use tuist run to launch an app.
  3. Observe that the command successfully builds the app, but fails to launch it as Simulator.app does not exist.

Error log

...
Build Succeeded
Running app com.company.App on iPhone 17
✖ Error
The command '/usr/bin/open -a /Applications/Xcode-beta.app/Contents/Developer/Applications/Simulator.app' terminated with the code 1:
The application /Applications/Xcode-beta.app/Contents/Developer/Applications/Simulator.app cannot be opened for an unexpected reason, error=Error Domain=NSCocoaErrorDomain Code=260 "The file “Simulator.app” couldn’t be opened because there is no such file." UserInfo={NSURL=file:///Applications/Xcode-beta.app/Contents/Developer/Applications/Simulator.app, NSFilePath=/Applications/Xcode-beta.app/Contents/Developer/Applications/Simulator.app, NSUnderlyingError=0xb2d04c090 {Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"}}
Sorry this didn’t work. Here’s what to try next:
▸ If the error is actionable, address it
▸ If the error is not actionable, let's discuss it in the Troubleshooting & how to
▸ If you are very certain it's a bug, file an issue
▸ Check out the logs at /Users/lukas/.local/state/tuist/sessions/574D2FB2-68A6-4879-BB13-F530E8D23E95/logs.txt

macOS version

26.5.2

Tuist version

4.202.0

Xcode version

27.0b6

Flights

Investigate, reproduce, or fix this item in an isolated repository. Each Flight preserves its outcome and agent session.

New Flights are paused Configure model inference, GitHub, and a sandbox provider to start another Flight. Existing results remain available below.
No Flights yet

Start a Flight and preserve its objective, outcome, and session here.

Comments
D
dosubot[bot] Aug 31, 2026

Hi @lfroms! I’m Dosu and I’m helping the Tuist team.

I confirmed the root cause in the source. SimulatorController.launchApp hardcodes a path to Simulator.app under the selected Xcode’s Contents/Developer/Applications directory and runs /usr/bin/open -a <that path> before calling simctl launch. Since Xcode 27 no longer ships Simulator.app at that location, open fails with the error you saw, and the simctl launch call is never reached.

TargetRunner.runApp delegates entirely to simulatorController.launchApp for the simulator path [1], so the fix only needs to land in SimulatorController. There is no existing logic in the codebase that references DeviceHub.app or the devices://manage/select URL scheme, so Xcode 27 support is not yet wired up at all.

The Tuist team has already started adding Xcode 27 beta to their CI infrastructure [2], so this is on their radar. If you’d like to take a stab at a fix yourself, the change would be in SimulatorController.swift — detect when Simulator.app doesn’t exist and fall back to opening DeviceHub.app (or the devices://manage/select?id=<uuid> URL you described). This would also be a good topic to bring to the community forum to discuss the detection/fallback approach with the team before opening a PR.

To reply, just mention @dosu.


Share context across your team and agents. Try Dosu.

Leave Feedback Learn about tuist with Dosu Add Dosu to your team