A macOS menu bar app to open Xcode projects with your preferred Xcode version.

- Version Selection - Choose which Xcode opens .xcodeproj and .xcworkspace files
- Multiple Xcodes - Support for multiple Xcode versions installed side-by-side
- Auto-Detection - Automatically detects installed Xcode versions
- Rules Engine - Define rules for which Xcode handles which file types
- Menu Bar App - Runs quietly in the menu bar
- Launch at Login - Optional auto-start with macOS
- XcodeOpener registers itself as the default handler for Xcode project files
- When you open a .xcodeproj or .xcworkspace, XcodeOpener intercepts it
- Based on your rules, it opens the project with your preferred Xcode version
- Download the latest release
- Move XcodeOpener.app to /Applications
- Launch the app
- Configure your Xcode versions and rules
- Click the XcodeOpener menu bar icon
- Select "Show Main Window"
- Go to the "Xcodes" tab
- Click "+" to add an Xcode installation
- Give it an alias (e.g., "Xcode 15") and select the app path
- Go to the "Rules" tab
- Click "+" to add a new rule
- Select the file type (.xcodeproj or .xcworkspace)
- Choose which Xcode should handle it
To restore macOS default behavior:
- Click the menu bar icon
- Select "Back to Xcode"
XcodeOpener uses macOS Launch Services APIs to:
- Register as the default handler for Xcode file types
- Intercept file open requests
- Launch the appropriate Xcode version
// Register as default handler
LSSetDefaultRoleHandlerForContentType(uti, .all, bundleId)
// Open file with specific app
NSWorkspace.shared.openFile(path, withApplication: xcodePath)
- macOS 12.0+
- One or more Xcode installations
MIT License - see LICENSE for details.
Created by Chen He.
Updated in 2026 with modern macOS API support.