Download and Use an Older Version of Xcode: How to Guide

Learn how to download and install older versions of Xcode on macOS. Step-by-step guide for developers using React Native, Flutter, and other tools.

App Development
Posted on
April 23, 2025
Download and Use an Older Version of Xcode: How to Guide

If you’re building iOS apps with tools like React Native or Flutter, you may occasionally need to use an earlier version of Xcode for compatibility reasons. While older versions aren’t available through the Mac App Store, you can still download them directly from Apple’s developer site.

Step 1: Access the Apple Developer Downloads Page

Visit the following page:
https://developer.apple.com/download/all/

You might be prompted to log in with your Apple ID. Any Apple account with developer access (including a free account) will work.

Step 2: Search for the Xcode Version You Need

Use the search bar to find the version of Xcode you need, such as Xcode 16.1.
Download the corresponding .xip file.

Step 3: Extract and Move Xcode

After the download finishes:

  1. Double-click the .xip file to extract the application.
  2. Drag the extracted Xcode app into your /Applications folder.
  3. If prompted, select "Keep Both" to avoid overwriting your existing Xcode installation.

Step 4: Rename the App for Clarity

In the /Applications folder, you’ll now have a copy of Xcode, typically named Xcode copy.
Rename it to something like Xcode 16.1.app to easily identify it later.

Step 5: Set the Command Line Tools Version

Open the Xcode app you just added, then go to:
Xcode → Settings → Locations

From the Command Line Tools dropdown, select the newly installed version.

Step 6: Configure Command Line Builds (Optional)

If you’re building from the terminal (e.g. using React Native or Flutter), point the system to your desired version of Xcode using the following command:

sudo xcode-select -s /Applications/Xcode\ 16.1.app/Contents/Developer

If the app name contains spaces (like Xcode 16.1.app), make sure to escape the space with a backslash (\) or wrap the path in quotes.

Get in touch