Skip to content

Open DeviceHub when Xcode ships no Simulator.app - #197

Merged
enfipy merged 1 commit into
mainfrom
fix/xcode27-simulator-ui
Sep 19, 2026
Merged

enfipy merged 1 commit into
mainfrom
fix/xcode27-simulator-ui

Conversation

@enfipy

@enfipy enfipy commented Sep 19, 2026

Copy link
Copy Markdown
Collaborator

Objective

  • crossbundle run ios fails on Xcode 27 after installing the app: it tries to open <DEVELOPER_DIR>/Applications/Simulator.app, which no longer exists. Xcode 27 replaced it with DeviceHub.app under Xcode.app/Contents/Applications.

Solution

  • Resolve the developer directory once and look for the Simulator UI in preference order: Simulator.app inside the developer directory, then DeviceHub.app next to Xcode's bundled applications.
  • Treat a missing UI as non-fatal. simctl keeps working headless, so the launch proceeds; IosSimulator now reports which UI was opened (ui: Option<PathBuf>) and the CLI prints a warning when none was found.
  • Unit tests cover the candidate order and the non-fatal path.

Changelog

Fixed

  • crossbundle run ios no longer aborts on Xcode 27, where the Simulator UI lives in DeviceHub.app.

Changed

  • IosSimulator gained a ui field naming the Simulator UI application that was opened, if any.

Xcode 27 removed `Simulator.app` from the developer directory and replaced it
with `DeviceHub.app` next to Xcode's other bundled applications. `simctl.open()`
failed there, which aborted `crossbundle run ios` after the app had already
been installed.

Look for `Simulator.app` first and `DeviceHub.app` second, and treat a missing
UI as non-fatal: `simctl` keeps working headless, so the run continues and the
CLI prints a warning instead.
@enfipy
enfipy merged commit ee78279 into main Sep 19, 2026
8 checks passed
@enfipy
enfipy deleted the fix/xcode27-simulator-ui branch September 19, 2026 20:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant