Manage the Xcodes installed on your Mac
Download a release (Preferred)
Download the latest release from the Releases page. These are Developer ID-signed release builds and don't require Xcode to already be installed in order to use.
mint install interstateone/xcodes
Build from source
Building from source requires Xcode, so it's not an option for setting up a computer from scratch.
git clone https://github.com/interstateone/xcodes cd xcodes make install # or, if /usr/local/ isn't in your PATH PREFIX=/your/install/directory make install
While installing, you may get the following output:
swift build -Xswiftc "-target" -Xswiftc "x86_64-apple-macosx10.13" error: terminated(72): xcrun --sdk macosx --find xctest output:
If that occurs, it means you need to select a version of Xcode. You can do this with
xcode-select or by choosing a Command Line Tools option in Xcode's preferences Locations tab.
xcodes install 10.1
You'll then be prompted to enter your Apple ID username and password. You can also provide these with the
XCODES_PASSWORD environment variables.
list: Lists the versions of Xcode available to download
install <version>: Downloads and installs a version of Xcode
installed: Lists the versions of Xcodes that are installed in /Applications on your computer
update: Updates the list of available versions of Xcode
Notable design decisions are recorded in DECISIONS.md. The Apple authentication flow is described in Apple.paw, which will allow you to play with the API endpoints that are involved using the Paw app.
Help us keep the lights on
0.3.1 - Mar 20, 2019
xcodes listnow ignores pre-release identifiers in available Xcode versions when determining which Xcodes are installed. This fixes an issue where pre-release versions wouldn't show that they were installed in the output, but it also means that if a newer pre-release version is available than one that you have installed, it will still show as installed. For example, if you have 10.2.0-beta.4 installed, and 10.2.0-beta.5 becomes available,
xcodes listwill print the line
10.2 Beta 5 (Installed). I'd like to further improve this in the future, but I think this matches
xcode-version's behaviour for now.
0.3.0 - Mar 20, 2019
- When a download fails in a way that it can be resumed, xcodes will automatically attempt to resume the download up to 3 times. After the third time it will exit, but you can run the same command again and it will attempt to resume from where it left off.
- Improve error response handling when signing in
- Fix pre-release version parsing
0.2.0 - Mar 15, 2019
- In addition to providing an Apple ID username with the XCODES_USERNAME environment variable, you can now provide the password with XCODES_PASSWORD
- Will attempt to use the version specified in an .xcode-version file in the current working directory if a version isn't provided as an argument when running the
- Automatically updates the available Xcodes if needed when running
- Improves error messages and remove deliberate uses of
0.1.0 - Mar 11, 2019
Supports installing Xcodes distributed as .xip files with Apple IDs using two-factor authentication.