Releases: sebsto/xcodeinstall
v1.0.0-rc1
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
Full Changelog: v0.23.0...v1.0.0-rc1
v0.23.0
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
- Add pre-flight sudoers check before install by @sebsto in #135
- Migrate Renovate config by @renovate[bot] in #134
Full Changelog: v0.22.0...v0.23.0
v0.22.0
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
v0.20.0
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
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
This release improves the error handling and error reporting.
What's Changed
- chore(deps): update dependency apple/swift-log to from: "1.10.1" by @renovate[bot] in #102
- Refactor : chunk 01 by @sebsto in #101
- Refactor : chunk 02 by @sebsto in #103
- Refcator : chunk 03 by @sebsto in #104
- Refcator : chunk 04 by @sebsto in #105
- Refactor : chunk 05 by @sebsto in #106
- Refactor : chunk 06 by @sebsto in #107
- Refactor : chunk 07 by @sebsto in #108
- refactor : chunk 08 by @sebsto in #109
- Refactor : chunk 09 by @sebsto in #110
- Refactor : chunk 10 by @sebsto in #111
- Refactor : chunk 11 by @sebsto in #112
- Refactor : chunk 12 by @sebsto in #113
- Refactor : Chunk 13 by @sebsto in #114
Full Changelog: v0.17.2...v0.18.0
v0.17.2
v0.17.1
This releases introduces two changes.
xcodeinstallernow automatically tries to download the list of available XCode eversion from Apple when there is no cached list present.- 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