Skip to content

Releases: sebsto/xcodeinstall

v1.0.0-rc1

12 May 18:38

Choose a tag to compare

This is the first release candidate for 1.0.0. The big addition is multi-version Xcode management.

What's new

Multi-version Xcode management

You can now install multiple Xcode versions side by side. When you install an Xcode XIP, the tool extracts the version from the filename and installs it as /Applications/Xcode-{version}.app. A symlink at /Applications/Xcode.app always points to the active version.

Architecture suffixes like "Apple silicon" or "Universal" are automatically stripped from the app name, so you get clean paths like Xcode-16.2.app instead of Xcode-16.2-Apple-silicon.app.

Switch between versions

A new switch subcommand lets you change the active Xcode version:

xcodeinstall switch 16.2

If you don't pass a version, it lists what's installed and lets you pick interactively. The command runs xcode-select to update the system toolchain path.

Sudoers check

The tool now checks whether the current user has passwordless sudo access for xcode-select before attempting to switch. This avoids confusing failures on headless EC2 Mac instances.

Other changes

  • README rewritten to focus on the EC2 Mac AMI preparation workflow
  • CHANGELOG removed in favor of GitHub Releases
  • Version extraction handles Apple's inconsistent XIP naming (betas, RCs, underscores, spaces)

Upgrading

If you already have a single /Applications/Xcode.app directory, it will remain untouched. The versioned naming and symlink only apply to new installs going forward. If you want to adopt the new scheme for your existing install, rename it manually and create the symlink yourself.

What's Changed

  • Add multi-version Xcode management by @sebsto in #136

Full Changelog: v0.23.0...v1.0.0-rc1

v0.23.0

12 May 18:08

Choose a tag to compare

What's new in 0.23.0

Heads-up before install needs your password. The install command now checks upfront whether passwordless sudo is configured. If it isn't, you get a clear message explaining how to set it up, instead of the command silently hanging waiting for input you can't see in a script.

What's Changed

Full Changelog: v0.22.0...v0.23.0

v0.22.0

12 May 16:44

Choose a tag to compare

Fixed an annoying bug where session cookies weren't being saved after the 2FA trust step. Previously, you'd authenticate successfully, then immediately hit "session expired" errors on the next command. That's gone now, authenticate once and keep working.

What's Changed

  • Consolidate withTemporaryDirectory test helper by @sebsto in #123
  • Improve AWS credential error messages by @sebsto in #124
  • Update dependency soto-project/soto to from: "7.14.0" by @renovate[bot] in #125
  • Update dependency tuist/Noora to from: "0.56.0" by @renovate[bot] in #126
  • Update dependency apple/swift-crypto to from: "4.5.0" by @renovate[bot] in #127
  • Update dependency apple/swift-argument-parser to from: "1.7.1" by @renovate[bot] in #128
  • Update swift Docker tag to v6.3 by @renovate[bot] in #129
  • Update dependency apple/swift-log to from: "1.12.0" by @renovate[bot] in #130
  • Fix session cookies not persisted after 2FA trust step by @sebsto in #133
  • Update dependency adam-fowler/swift-srp to from: "2.3.0" by @renovate[bot] in #131

Full Changelog: v0.21.0...v0.22.0

v0.21.0

03 Mar 08:43

Choose a tag to compare

This releases fix the SMS multi factor authentication.
You can now choose between receiving the code on a trusted device or by SMS

Other changes

  • Update dependency apple/swift-crypto to v4 by @renovate[bot] in #122

Full Changelog: v0.20.0...v0.21.0

v0.20.0

26 Feb 16:29

Choose a tag to compare

This release allows you to authenticate to AWS Secrets Manager using AWS Identity Center (aws sso login command)

What's Changed

  • Update dependency tuist/Noora to from: "0.55.1" by @renovate[bot] in #118
  • Update dependency adam-fowler/swift-srp to from: "2.2.0" by @renovate[bot] in #119
  • Update dependency apple/swift-system to from: "1.6.4" by @renovate[bot] in #120
  • Update actions/cache action to v5 by @renovate[bot] in #121

Full Changelog: v0.19.0...v0.20.0

v0.19.0

17 Feb 08:48

Choose a tag to compare

What's New in v0.19.0

No more repetitive typing of AWS flags 🎉

If you use AWS Secrets Manager, you know the pain of typing -s us-west-2 -p myprofile every single time. Not anymore!

Specify these options once and they're automatically saved for future commands. The tool shows you what settings it's using, and you can always override them on the command line when needed.

# First time
xcodeinstall authenticate -s us-west-2 -p myprofile

# Every time after - just works
xcodeinstall list
xcodeinstall download --name "Xcode 15.2.xip"

Settings are stored in ~/.xcodeinstall/config.json. Clear it with rm ~/.xcodeinstall/config.json if you need to start fresh.

Also included:

  • Updated README with quick start guide for new users
  • Better documentation for all commands
  • Troubleshooting section to help debug common issues

No breaking changes - existing workflows continue to work exactly as before.

All changes

  • Update dependency apple/swift-argument-parser to from: "1.7.0" by @renovate[bot] in #115
  • Update dependency soto-project/soto to from: "7.12.0" by @renovate[bot] in #116
  • Add persistent config for AWS region and profile options by @sebsto in #117

Full Changelog: v0.18.0...v0.19.0

v0.18.0

16 Feb 22:37

Choose a tag to compare

This release improves the error handling and error reporting.

What's Changed

Full Changelog: v0.17.2...v0.18.0

v0.17.2

15 Feb 18:47

Choose a tag to compare

What's Changed

  • Fix crash when the .xcodeinstall directory doesn't exist by @sebsto in #100

Full Changelog: v0.17.1...v0.17.2

v0.17.1

15 Feb 18:26

Choose a tag to compare

This releases introduces two changes.

  1. xcodeinstaller now automatically tries to download the list of available XCode eversion from Apple when there is no cached list present.
  2. Internnaly, we use the CLI library created by Tuits (Noora) for a more professional look and feel and better UX

What's Changed

  • Replace CLIlib with Noora + internalized CLI layer by @sebsto in #97
  • chore(deps): update dependency tuist/noora to from: "0.54.2" by @renovate[bot] in #98
  • force download when no cache present by @sebsto in #99

Full Changelog: v0.16.0...v0.17.1

v0.16.0

15 Feb 16:05

Choose a tag to compare

What's Changed

Full Changelog: v0.15.0...v0.16.0