Skip to content

Open in Xcode does nothing when Xcode is installed as Xcode-beta.app #6159

Closed

Description

@10xtushar

Describe the bug

Flutter: Open in Xcode silently does nothing when the only installed Xcode is /Applications/Xcode-beta.app.

openInXcode launches Xcode by application name:

https://github.com/Dart-Code/Dart-Code/blob/master/src/extension/commands/open_in_other_editors.ts

const file = path.join(folder, files[0].name);
safeToolSpawn(folder, "open", ["-a", "XCode", file]);

open -a resolves via LaunchServices by app name, and a beta Xcode is installed as Xcode-beta.app, so the lookup fails:

$ open -a "XCode" ios/Runner.xcworkspace
Unable to find application named 'XCode'
$ echo $?
1

The safeToolSpawn result isn't checked, so nothing surfaces in the UI — the context-menu item just appears to do nothing. The .xcworkspace/.xcodeproj discovery above it works correctly; only the launch fails.

This affects anyone on an iOS/macOS beta, who generally cannot install a stable Xcode alongside it for the current SDK.

To Reproduce

  1. Have /Applications/Xcode-beta.app as the only installed Xcode (no /Applications/Xcode.app).
  2. Open a Flutter project.
  3. Right-click the ios folder in the explorer → Open in Xcode.
  4. Nothing happens, and no error is shown.

Expected behavior

Xcode opens the project, or an error is shown if it genuinely can't be found.

Proposed solution

Launch by bundle ID instead of app name. Both Xcode.app and Xcode-beta.app declare com.apple.dt.Xcode:

$ defaults read /Applications/Xcode-beta.app/Contents/Info.plist CFBundleIdentifier
com.apple.dt.Xcode
-		safeToolSpawn(folder, "open", ["-a", "XCode", file]);
+		safeToolSpawn(folder, "open", ["-b", "com.apple.dt.Xcode", file]);

Verified locally (patched into the installed extension bundle) — it opens Runner.xcworkspace in Xcode beta correctly.

-b goes through the same LaunchServices database as -a, just keyed on bundle ID rather than name, so this should preserve the fix from #5420 (Xcode installed on an external drive) while also handling renamed/beta installs. It also avoids depending on open -a being case-insensitive for "XCode".

Happy to raise a PR for this if the approach looks right.

Please complete the following information:

  • Operating System and version: macOS 27.0 (26A5421a)
  • VS Code version: Cursor 3.12.30
  • Dart extension version: 3.140.0
  • Dart/Flutter SDK version: Flutter 3.47.2 (stable), Dart 3.13.2
  • Xcode version: 27.0 beta (27A5237l), installed as Xcode-beta.app
  • Target device (if the issue relates to Flutter debugging): n/a

Activity

  1. added this to the v3.144.0 milestone on Sep 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions