I am facing a problem running older versions of Xcode on newer MacOS versions.
For example, Xcode 13 on MacOS Ventura.

- 3,607
- 3
- 17
- 41
5 Answers
The solution is very simple. If you have the older version downloaded in your Applications folder for example, lets say 12.5.1
version, you just need to:
- Open Terminal
- Open Applications folder in Finder
- Drag the Xcode app into Terminal so it gets its path
- Then add this next to it:
/Contents/MacOS/Xcode
, so the full command will be something like/Applications/Xcode-12.5.1.app/Contents/MacOS/Xcode
- Press enter to run the command
Now you should be able to run it. You will note that when you open this version of Xcode, the Terminal will open too, but don't close Terminal because it will close the Xcode too.
Here you can find older Xcode versions.

- 3,607
- 3
- 17
- 41
-
4Why can't you just run the app? – Willeke Nov 17 '21 at 09:34
-
2@Willeke: because macOS Monterey requires Xcode 13 and above – Lê Thái Phúc Quang Dec 03 '21 at 14:02
-
4I added this as a shell script shortcut. Worked great! Makes you wonder just why Apple refuses to let it run under Monterey... – Michael Long Dec 09 '21 at 19:17
-
4Xcode 12.0.1 works too, using the same way. – Beckon Dec 28 '21 at 02:45
-
If I go terminal/Shell/New Window/Basic then it doesn't work - get an "It says no such file or directory" error. I had to do Terminal/Shell/New Window/Homebrew to get it to work – Gruntcakes Feb 22 '22 at 16:28
-
1Right click on XCode app and show package content than go to ContentsMacOS/Xcode double click to open – Dharmik Apr 29 '22 at 09:54
-
@MichaelLong On Intel Mac the Xcode 12 works perfectly fine on Monterey. However on Apple Silicon Mac, there have some compatibility issues such as unable to attach to a Mac Catalyst app process. – Jonny Oct 04 '22 at 01:31
-
1This workaround also works on macOS Sonoma & Xcode 14.3.1. – nikolovski Jun 08 '23 at 09:00
Change the paths to OLD/NEW Xcodes and run script. The script will change the build version of the old Xcode to the new one, run it and restore. Script needs to be run once, after that Xcode can be opened via double click
Works on macOS Monterey for Xcode 12.5.1 and Ventura for Xcode 13
#!/bin/sh
set -euo pipefail
# Set the paths to your Old/New Xcodes
OLD_XCODE="/Applications/Xcode_13.4.1.app" # or /Applications/Xcode_12.5.1.app on Monterey
NEW_XCODE="/Applications/Xcode.app" # To get build number
# Get New Xcode build number
OLD_XCODE_BUILD=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" ${OLD_XCODE}/Contents/Info.plist)
NEW_XCODE_BUILD=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" ${NEW_XCODE}/Contents/Info.plist)
echo The Old Xcode build version is $OLD_XCODE_BUILD
echo The New Xcode build version is $NEW_XCODE_BUILD
# Change Old Xcode build version to New Xcode
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion ${NEW_XCODE_BUILD}" ${OLD_XCODE}/Contents/Info.plist
# Open Old Xcode (system will check build version and cache it)
open $OLD_XCODE || true
# Revert Old's Xcode's build version
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion ${OLD_XCODE_BUILD}" ${OLD_XCODE}/Contents/Info.plist

- 3,067
- 36
- 30
-
5I think this answer should be marked as Accepted. Really good approach for "daily" usage. – user2185412 Jan 21 '22 at 10:56
-
as @Mert AYDIN wrote, to find out what is CFBundleVersion of your current Xcode version, use this command to be able to run the accepted answer as your Xcode version might be something else instead of 13.1 `/usr/libexec/PlistBuddy -c "Print CFBundleVersion" /Applications/Xcode_12.4.app/Contents/Info.plist` – ACAkgul Jan 31 '22 at 07:25
-
4
-
-
this solution is not working for **Xcode_10.X** which they say i need to migrate my **Swift 3** projects to **Swift 4**. – nyxee Sep 12 '22 at 05:57
-
2
This is how you get your xcode's current build version.
/usr/libexec/PlistBuddy -c "Print CFBundleVersion" /Applications/Xcode_12.4.app/Contents/Info.plist

- 61
- 2
-
1Your answer could be improved with additional supporting information. Please [edit] to add further details, such as citations or documentation, so that others can confirm that your answer is correct. You can find more information on how to write good answers [in the help center](/help/how-to-answer). – Community Jan 07 '22 at 00:16
-
To find out what is CFBundleVersion of your current Xcode version, use this command to be able to run the accepted answer as your Xcode version might be something else instead of 13.1 @Mert AYDIN thanks, adamsın :) – ACAkgul Jan 31 '22 at 05:40
If you are looking for a solution without using terminal every time, here it is:
Create a bash file with this content
#!/bin/bash /Applications/Xcode-12.5.1.app/Contents/MacOS/Xcode
Open terminal, run
chmod 700 YourBashFile.sh
Change the default opening app of YourBashFile to terminal.
Follow step 1 and 2 of this https://apple.stackexchange.com/a/407885 to create an executable application which you can put on your Dock. After this you should be able to use the new app like any other app.

- 57
- 5
- Download and install older Xcode releases from here:
Login will be required with your Apple Developer credentials.
Download and uncompress installer:
e.g. Xcode_13.4.1.xip
from Terminal run:
open /Applications/Xcode.app/Contents/MacOS/Xcode
Accept agreement and setup any development parameters as needed.

- 85
- 1
- 4