# How to manage Xcode versions the easy way

Apple's Xcode helps build a lot of great iOS apps. However, working with Xcode is a real pain in the rear, due to the [breaking](https://blog.embrace.io/xcode-12-and-xcframework/) [changes](https://fluffy.es/4-ios13-breaking-changes/); the [code signing process](https://developer.apple.com/support/code-signing/); the upgrade/downgrade to specific versions, etc.

Having multiple versions of Xcode on a single machine provides more flexibility. It’s a good practice to try to stay up-to-date, but sometimes you need the ability to release an app built with an older version. Previously, my best approach was to download specific versions of Xcode manually (using either https://xcodereleases.com or this [great SO answer](https://stackoverflow.com/a/10335943/2587129)) rather than using the Mac App Store version. This approach has some downsides:

*   Too many manual steps involved (download, extract, install, verify, rename, select the version for CLI, etc.)
    
*   Sometimes the downloads just get interrupted for no reason
    

Recently, I found this great tool called [Xcodes](https://github.com/RobotsAndPencils/XcodesApp) that provides us with a much better way to install and switch between multiple versions of Xcode.

![](https://github.com/RobotsAndPencils/XcodesApp/raw/main/screenshot.png align="center")

Xcodes offers these great features:

*   List all available Xcode versions from xcodereleases.com's data or the [Apple Developer website](https://developer.apple.com/download/all/)
    
*   Install any Xcode version, fully automated from start to finish. Xcodes uses [aria2](https://aria2.github.io), which uses up to 16 connections to download 3-5x faster than URLSession
    
*   Just click a button to make a version active with `xcode-select`
    
*   View release notes, OS compatibility, included SDKs and compilers from xcodereleases.com
    

To install Xcodes using `Homebrew`:

```plaintext
brew install --cask xcodes
```

In your first time opening Xcodes, it will prompt you to sign in with your Apple Developer account.

![Screen Shot 2021-10-11 at 12.20.21 AM.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1633886472637/6hnqCJVFe.png align="center")

After that, click `Install` on the Xcode versions you want to download. Xcodes will do all these jobs automatically:

*   Downloading
    
*   Unarchiving
    
*   Moving the Xcode version to the specified directory (if you manually set it)
    
*   Trashing the archive
    
*   Checking security assessment and code signing
    

![Screen Shot 2021-10-11 at 12.23.40 AM.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1633886663360/OTQJ0bmhm.png align="center")

After the installation is done, to active a specific version, just select that version and click the `Active` button. That's it!

Hopefully this tool will make your life as an iOS developer much easier. If you're looking for a command-line version of Xcodes, check out [xcodes](https://github.com/RobotsAndPencils/xcodes).
