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.