How do you update Xcode on OSX to the latest version? - xcode

What is the easiest way to update Xcode on OSX?
I see this in the terminal:
$ brew install xxxxxxx
Warning: Your Xcode (4.3.3) is outdated
Please install Xcode 4.6.
But when I go to open up Xcode > Preferences > Downloads, it says there are no updates?

Open up App Store
Look in the top right for the updates section (may also be in lefthand column "Updates"..)
Find Xcode & click Update

softwareupdate --list see the list of outdated software.
softwareupdate --install --all update all outdated software.
softwareupdate --install <product name> update the software you named.

Sometime I don't see the Xcode update in Updates tab in AppStore
So I search Xcode in AppStore
Then click update and it update

If attempting to download via the App Store leaves you with a little grey spinner and nothing actually happening, then you can go to :
https://developer.apple.com/download/more/
log in with your Apple Developer ID, and the latest Xcode should be available as a .zip download.

In my case (Xcode 6.1, iOS 8.2) I did not see the update in AppStore.
I found Xcode 6.2 for download and pressed "Install".
Then, it installed and asked for the update (more than 2 Gb).
Xcode 6.2 works correctly with iOS 8.2 and iOS 8.1.2
Hopefully this tip will help somebody else...

xcode-select --install worked for me

Another best way to update and upgrade OSX development tools using command line is as follows:
Open terminal on OSX and type below commands. Try 'sudo' as prefix if you don't have admin privileges.
brew update
and for upgrading outdated tools and libraries use below command
brew upgrade
These will update all packages like node, rethinkDB and much more.
Also, softwareupdate --install --all this command also work best.
Important: Remove all outdated packages and free some space using the simple command.
brew cleanup

If you want the latest Beta, it will not be in the AppStore. Instead you have to login to https://developer.apple.com and download from there.

In my case I solved this "no updates" issue by accessing AppStore from the developers link:
https://developer.apple.com/download/release/
Apart, you might find this command useful: mas-cli-github
$ brew install mas
$ mas list
$ mas search Xcode
$ mas install <id>
$ mas upgrade <id>

I ran into this bugger too.
I was running an older version of Xcode (not compatible with ios 9.2) so I needed to update.
I spent hours on this and was constantly getting spinning wheel of death in the app store. Nothing worked. I tried CLI softwareupdate, updating OSX, everything.
I ultimately had to download AppZapper, then nuked XCode.
I went into the app store to download and it still didn't work. Then I rebooted.
And from here I could finally upgrade to a fresh version of xcode.
WARNING: AppZapper can delete all your data around Xcode as well, so be prepared to start from scratch on your profiles, keys, etc. Also per the other notes here, of course be ready for a 3-5 hour long downloading expedition...

You DO NOT need to upgrade Xcode.
Just open the file /usr/local/Homebrew/Library/Homebrew/extend/os/mac/diagnostic.rb ,
then remove this line check_xcode_minimum_version in the following function.
def fatal_build_from_source_checks
%w[
check_xcode_license_approved
check_xcode_minimum_version //<-- this one
check_clt_minimum_version
check_if_xcode_needs_clt_installed
].freeze
end
Then brew install should works fine.

I used the Command_Line_Tools_OS_X_10.XX_for_Xcode_7.2.dmg and therefore had to download the latest version from here.

Check https://xcodereleases.com/ where you can also download legacy versions.

For me it was >41GB for the update to start. ~/Library contains a lot of cached content for mail, browsers, etc...you can safely remove those. Remove big apps too, like iMovie..you can always install it back later

Related

MobileDevice.pkg untrusted, cannot open Xcode after OS X update

After an automatic update of macOS v10.15 (Catalina), I am unable to open Xcode. Xcode prompts me to install additional components but the installation fails because of MobileDevice.pkg (Applications/Xcode.app/Contents/Resources/Packages)
I have found multiple answers on how to locate MobileDevice.pkg and that I should try to install it directly, but when I try to do this the installation fails too. I have also tried updating Xcode from App Store, but the update failed when it was nearly finished.
Has anyone experienced the same behaviour? Should I reset the Mac to default and install macOS v10.13 (High Sierra) or Catalina from scratch or it is a problem of Xcode and re-install would do the job?
I have found a discussion here that was posted today and is probably regarding the same issue and it seems like many people are dealing with it, too.
The log:
*2019-10-25 01:03:34+02 Vendula-MacBook-Pro Xcode[1567]: Package: PKLeopardPackage
<id=com.apple.pkg.MobileDevice, version=4.0.0.0.1.1567124787, url=file:///Applications/Xcode.app/Contents/Resources/Packages/MobileDevice.pkg>
Failed to verify with error: Error Domain=PKInstallErrorDomain Code=102
"The package “MobileDevice.pkg” is untrusted."
UserInfo={
NSLocalizedDescription=The package “MobileDevice.pkg” is untrusted.,
NSURL=MobileDevice.pkg -- file:///Applications/Xcode.app/Contents/Resources/Packages/,
PKInstallPackageIdentifier=com.apple.pkg.MobileDevice,
NSUnderlyingError=0x7fabf6626d00
{
Error Domain=NSOSStatusErrorDomain
Code=-2147409654 "CSSMERR_TP_CERT_EXPIRED"
UserInfo={
SecTrustResult=5,
PKTrustLevel=PKTrustLevelExpiredCertificate,
NSLocalizedFailureReason=CSSMERR_TP_CERT_EXPIRED
}
}
}*
Edit and set the date of your Mac as October 1st, 2019.
I didn't have Xcode 11.1 installed and even though I could open and run the 11.0 after the below workaround I could not update to 11.1 as the update always failed. So I have just re-installed the whole app from the App-Store - you could probably also do this instead of the below method.
I have tried setting my system time to 1st October 2019 when the certificate should had been still valid. After that I tried to open Xcode and followed the component install which went well and now I am able to work with Xcode again.
I had a similar problem, where I installed Xcode 11.1, and installed the components and everything within the same folder where I had Xcode 10.2.1. Then, I tried to go back to Xcode 10.2.1 and couldn't opened as it was asking me to install components again, and when I tried I was getting this error.
The package “MobileDeviceDevelopment.pkg” is untrusted.
So, the workaround that fixed it for me was navigating to...
/Users/YourUser/Applications/Xcode\ 10.2.1.app/Contents/Resources/
Then, deleting MobileDeviceDevelopment.pkg and everything went back to normal :)
I hope this helps anyone else with this issue. Cheers!
At macOS Catalina
cd /Applications/Xcode.app/Contents/Resources/Packages
sudo rm -rf MobileDevice.pkg
sudo rm -rf MobileDeviceDevelopment.pkg
Try again.
It means you entered on the Xcode downloaded packages and remove it. I really don't understand how Apple do but if you remove Xcode will download it again and revalidates.
Some remarks, I'm on XCODE Version 11.0 (11A420a) if you are not this is not guaranteed to work.
You may solve this issue by setting the date of your Mac as October 1st, 2019. But this is just a hack! The real solution (suggested by apple) is this:
All you have to is to upgrade Xcode
But there is a known Issues on apple developers site
Xcode may fail to update from the Mac App Store after updating to macOS Catalina. (56061273)
Apple suggests this:
To trigger a new download you can delete the existing Xcode.app or temporarily change the file extension so it is no longer visible to the App Store.
Always working solution for all Xcode issues:
Go here and log in.
Then download the xib from here.
More information here on this answer.
##Answer to this specific issue##
Get rid of those packages.
cd /Applications/Xcode.app/Contents/Resources/Packages
sudo rm -rf MobileDevice.pkg
sudo rm -rf MobileDeviceDevelopment.pkg
Xcode will install all of them again for you.
rm -rf /Applications/Xcode.app/Contents/Resources/Packages/*.pkg
It will work and re-open the x-code
Try to run Xcode-beta instead of Xcode to install additional components. After that you'll be able to use Xcode release.
For me, I just uninstalled (deleted the app from the Applications folder) and then went back to app store and clicked the cloud icon and it downloaded fresh and installed. Now all is good and back to normal.
Here's what I did to resolve:
Right click the xcode.app > show package contents > Contents > Developer > Platforms > iPhoneOS.platform > Device Support
I am on XCode 10.2.1. I had downloaded a 13.7 folder and contents from an external GitHub site and imported that folder into here for running my app on a physical iPhone Xr. I am prevented from upgrading to Catalina on my dev machine. Deleting the 13.7 folder and then re-launching XCode resolved the issue for me.
Reinstall Xcode 11.1 from https://developer.apple.com/download/more/ . Afterwards the update works.
This requires Xcode 11.1 to be installed.
I was not able to update to Xcode 11.1 until I updated macOS Catalina to 10.15.1. After updating my macOS, I was able to install Xcode 11.1, which also allowed the installation of the additional components package.

Homebrew says Xcode is out of date but it doesn't show up in the App Store

When trying to install a homebrew keg, I get the following error:
$ brew install direnv
Error: Your Xcode (8.0) is too outdated.
Please update to Xcode 9.1 (or delete it).
Xcode can be updated from the App Store.
When I open the app store, Xcode doesn't indicate any software update is available – in fact, it even doesn't appear to be installed.
How can I update (or delete) it?
If /Applications/Xcode.app exists, but it's not showing up in the App Store as installed, then it's likely you installed Xcode manually by downloading it from Apple Developer Downloads.
You can delete it simply by moving /Applications/Xcode.app to the trash. This should allow you to brew install <package> without the error.

How do I eliminate multiple versions of Xcode?

I installed homebrew, and it keeps complaining that:
Warning: Your Xcode (4.2) is outdated
Please install Xcode 4.6.2.
As I learned there is no way to update Xcode so I just downloaded / installed the latest version.
The warning did not go away, and as I learned, I now have 2 versions installed:
and the warning did not go away
How do I now eliminate the old version? I just wanted to update it really.
The /Developer location is now obsolete. Xcode now runs entirely from the application bundle in /Applications/Xcode.app.
To remove it properly, run this from Terminal:
sudo /Developer/Library/uninstall-devtools --mode=all
Although, I've simply moved /Developer it to the Trash in the past and that seemed to work fine.
You'll need to go into Xcode.app's preferences afterwards and install Command Line Tools from Downloads->Components. I came across a tutorial for setting up homebrew for new Xcode installations.

Uninstall Xcode 4 when it was installed via the App Store

I understand that those who installed Xcode 4 via the developer site are able to uninstall via /Developer/Library/uninstall-devtools –mode=all, however I installed via the App store and there doesn't seem to be an executable with the word "uninstall" in the name anywhere in the Developer folder at all. Any suggestions on how I should go about uninstalling Xcode 4?
This help for Xcode before MAS install
/Library/Developer/Shared/uninstall-devtools
If you install it from MAS you can remove from launchpad,
but also need to remove some folders** and files created by this app, you can use some helper application that found this files and safely remove it :)
** ex.: ~/Library/Developer, ~/Library/Application Support/Xcode, ~/Library/iPhone Simulator, Logs and etc.
From the above comment, the correct way is to:
Run sudo /Developer/Library/uninstall-devtools –mode=all
Delete "/Applications/Install Xcode" if you want the app store to allow you to reinstall it.
If you have installed xcode from Mac App store, then you need to delete it from Launch pad. You can do this by locating xcode icon in launch pad, long click on the icon till it starts dancing. Then delete it and wait for a while till the xcode.app is deleted from /Application. If you manually delete xcode.app from /Application, App store will continue to think its installed and will not allow you to reinstall in future.
In our installs of xCode 4 from the App Store, we are able to use:
sudo /Developer/Library/uninstall-developer-folder
You must uninstall first the
sudo /Library/Developer/Share/uninstall-devtools –mode=all
It might be something else in your particular case so maybe you can try
locate uninstall-devtools to find where the script is placed.
Then you can find the version you need of xcode from https://developer.apple.com/downloads/index.action
IMPORTANT: If you are going to install a previous version of the Developer Tools, be sure to restart the machine after installing.

Can I have multiple Xcode versions installed?

Is it possible to have more than one version of Xcode installed at the same time?
If so, please post any tip, tricks, or potential issues to watch out for.
EDIT:
The reason I want to install multiple versions is to try out the new sdk beta, but if the new Xcode is buggy I want to be able to use the older version for my existing projects.
Yes, you can install multiple versions of Xcode. They will install into separate directories. I've found that the best practice is to install the version that came with your Mac first and then install downloaded versions, but it probably doesn't make a big difference. See http://developer.apple.com/documentation/Xcode/Conceptual/XcodeCoexistence/Contents/Resources/en.lproj/Details/Details.html this Apple Developer Connection page for lots of details. <- Page does not exist anymore!
Can I have multiple Xcode versions installed?
Solution:
Actually as many of the above answers says, it is possible.
Even according to the following Oracle Mobile Platform Blog, you can install more than one XCodes in the same Mac. The reason why you need to do that may vary according to you.
Scenario:
You might have installed only one version of XCode for now. Mostly the one release behind the latest XCode version which is available through App Store (mine I've Xcode 6.3.2 and I needed to keep it and also install Xcode 7 which is available through App Store).
For Ex:-
You have already installed XCode 6.x, and App Store has XCode 7
already given by App Store. For any reason you need to keep that Older
XCode 6.x(as you know it is stable for some time now) and also you
need to install and try out new XCode 7
So number one question might be, How and Where could you download the Mac OS X installable DMG file for XCode 7 (or may be if you wanna try out an older XCode version)? Ok, here is the direct link apple downloads (you might have to log into Apple Developer account before viewing this link correctly), or else following is a StackOverflow Q&A link which gives the answer to where to download DMG files for XCode IDEs.
So now let's assume that you have obtained any of the DMG file for the XCode version you require to install as secondarily?
Steps:
Follow the steps given bellow which I got from the above given first link of Oracles Mobile Platform Blog.
Close Xcode if running
Rename /Applications/Xcode.app to /Applications/Xcode_6.x.app
Enter the admin password when prompted
Double click the DMG file of your required, pre-downloaded Xcode and install it
Once installed it, before running it, change the new
/Applications/Xcode.app that was just installed to (according to my above given example) /Application/Xcode_7.app
Note*:
[Please patiently read this section until the next Note] When you have two versions of Xcode installed, your workstation has two versions of Command Line Tool (xcodebuild) installed too. The question is what your Terminal and Xcode build command will use to when you are building your iOS App. Because along with the Command Line Tool, iOS SDK which is being used to build your app also depends on.
My experience was I've had two Xcode versions. Xcode 10 (Old one with iOS12.0 - iphoneos12.0), and Xcode 10.1 (New one with iOS 12.1 - iphoneos12.1). So obviously the settings for Command Line Tool was selected to use xcodebuild tool from the Old app. I had to manually select it in Xcode preference window.
Where to set Command Line Tool in Xcode Preference Window?
Select the Locations tab and there, you can select all the installed versions of Command Line Tools (which is xcodebuild).
How to figure out which version of iOS SDK is being used to build your iOS App?
On your Terminal issue following command:
$> xcodebuild -showsdks
Above command should print out all the SDK details which your current Xcode configuration uses to build your Apps. And by seeing the results you will understand that your iOS/iphoneos SDK version depends on changing Command Line Tool (xcodebuild) setting on your Xcode.
Note**:
Above given Apple Downloads link and Oracles MPF blog post links might change and/or unavailable in the future.
So I hope that my this answer might be helpful to somebody else out there!
Cheers!
It's easy to have multiple Xcode installs.
In the installer there's a pulldown for the location... you just need to pick a new location when you're installing the beta version.
These instructions from an Apple dev tools evangelist have the full details (Apple dev username/password required):
https://devforums.apple.com/message/40847#40847
Then grab yourself a custom icon for the Beta version of XCode you're using, so you can tell them apart in the dock:
http://iphonedevelopment.blogspot.com/2009/03/multiple-developer-tool-installs.html
You may want to use the "xcode-select" command in terminal to switch between the different Xcode version in the installed folders.
It seems that Xcode really likes to be in the Applications folder and be called Xcode, especially when using xcodebuild (when building for Carthage for example) - and xcode-select doesn't always seem to cut it.
I have a client project that's still using Swift 2.2, and I'm stuck on Xcode 7 for that and using Xcode 8 for anything else.
So, in my Applications folder, I have Xcode 7 (renamed to Xcode_7) and Xcode 8 (renamed to Xcode_8). Then I rename whichever one I need to simply Xcode, and back again when done. It's a ball-ache, but seems to work.
This shell script simplifies it a bit…
xcode-version.sh
cd /Applications
if [[ $1 = "-8" ]]
then
if [ -e Xcode_8.app ]
then
mv Xcode.app Xcode_7.app
mv Xcode_8.app Xcode.app
echo "Switched to Xcode 8"
else
echo "Already using Xcode 8"
fi
elif [[ $1 = "-7" ]]
then
if [ -e Xcode_7.app ]
then
mv Xcode.app Xcode_8.app
mv Xcode_7.app Xcode.app
echo "Switched to Xcode 7"
else
echo "Already using Xcode 7"
fi
else
echo "usage: xcode-version -7/8"
fi
xcode-select --switch Xcode.app
Note that if you use the xcodebuild command line tool, then the last version of Xcode installed will become the default version. (A symbolic link is installed in /usr/bin.) To use the xcodebuild for the other versions of Xcode you'll need to use the version in the (xcode_install_directory)/usr/bin directory.
note To switch between different versions of the Xcode command-line tools, use the xcode-select tool mentioned by other commenters.
Multiple Versions Of Xcode & Simulators using gem Xcode::Install
Install and update your Xcodes automatically.
You can greatly simplify this process by using the
Xcode::Install Ruby Gem.
You should already have a working installation of the
Xcode Command Line Tools and a version of Ruby that supports building native extensions.
I'd suggest using Homebrew for installing
rbenv and use rbenv to install Ruby.
A guide for this can be found here and many other places.
But it should work with the stock Ruby supplied by newer macOS versions as well, if you install the gem either using sudo (not recommended) or using --user-install when installing the gem.
Installation
Basically:
# Install the Ruby Gem (I'm using rbenv, so no sudo or --user-install)
$ gem install xcode-install
# To list available versions:
# PS!You will get prompted for your Apple Developer / iCloud credentials)
# It's using Apple's own API's so 2FA are supported if enabled
$ xcversion list
6.0.1
6.1
6.1.1
6.2 (installed)
6.3
# To update the list of available versions, run:
$ xcversion update
# To install a certain version, simply:
$ xcversion install 8
##################################################################### 100.0%
Please authenticate for Xcode installation...
Xcode 8
Build version 6D570
This should download and install and activate that version of Xcode.
You can start it from /Applications as usual.
The new version will also be automatically selected for CLI commands
To select a different version as active, you'll run:
xcversion select <version_number>
from the list of installed versions, marked as (installed) like:
# To see the active version in use:
$ xcversion selected
# To select and activate an installed version:
$ xcversion select 8
# To select, activate and change the symlink in /Apllications
$ xcversion select 8 --symlink
Other fun stuff, Simulators etc
Xcode::Install can also install Xcode's Command Line Tools by calling
xcversion install-cli-tools
and can also manage your local simulators using the simulators command.
But instead of repeating more information that is probably going to change over time, head over to the project's GitHub page
for more about this gem.
Staring with Xcode 9, the beta Xcode is labeled 'Xcode-beta.app' and is designed to live side by side with the production version. Info can be found in the Xcode release notes here. (Not using direct link because it breaks often).
From Apple:
Xcode 9 beta 4 can coexist with previous versions of Xcode. Prerelease
versions of Xcode are made available from developer.apple.com,
packaged in a compressed XIP file. To install Xcode during the beta
period, download the XIP file, double-click the file to expand it in
place, then drag Xcode-beta.app to the Applications folder
Download a version
The beta and stable releases can be taken from the Developer Software downloads Application tab, here), but older versions can be taken from here. Just extract the .xib and put Xcode-beta.app in your Applications folder.
Switch versions
Using the beta: sudo xcode-select -s /Applications/Xcode-beta.app/Contents/Developer
Using the original: sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
Check version changed
You can validate the version has changed by running xed --version, and it will output the correct version: e.g. xed version 12.5 or xed version 13.0
To have multiple Xcode instances installed you can put them to different folders for example /Developer5.0.2/Xcode, but to use them in CI or build environment(command line) you need to setup some environment variables during the build.
You can have more instructions here.
So it is working not just with beta and fresh release, also it's working for the really old versions, you might need it to use with Marmalade or Unity plugins which is not support the latest Xcode versions yet(some times it's happens).
Whatever advice path you go down, make a copy of your project folder, and rename the external most one to reflect what XCode version it is being opened in.
Your choice on whether you want it to update syntax or not, but the main reason for all this bovver is your storyboard will be altered just by looking. It may be resolved by the time a new reader coming across this in the future, or
All the updates for new version of xcode will be available in appstore if you have installed the version from appstore. If you just paste the downloaded version appstore will show install not update. Hence keep the stable version downloaded from appstore in your applications folder.
To try new beta releases i usually put it in separate drive and unzip and install it there. This will avoid confusion while working on stable version.
To avoid confusion you can keep only the stable version in your dock and open the beta version from spotlight(Command + Space). This will place beta temporarily on dock. But it will make sure you don't accidentally edit your client project in beta version.
Most Important:- Working on same project on two different xcode might create some unwanted results. Like there was a bug in interface builder that got introduced in certain version of xcode. Which broke the constraints. It got fixed again in the next one.
Keep track of release notes to know exactly what are additional features and what are known issues.
First, remove the current Xcode installation from your machine. You can probably skip this step but I wanted to start fresh. Plus — Xcode was behaving a little weird lately so this is a good opportunity to do that.
Install Xcode 8 from the App Store. Make sure project files (.xcodeproj) and workspace files (.xcworkspace) can be opened with the new Xcode installation (remember to select the Later option whenever prompted).
Download the Xcode 7.3.1 dmg file from Apple. Double-tap the newly downloaded dmg file in order to get the standard “Drag to install Xcode in your Applications folder”. Don’t do that. Instead, drag the Xcode icon to the desktop. Change the file name to Xcode 7.3.1. Now drag it to the Applications folder.
Now you have two versions of Xcode installed on your machine. Xcode 7.3.1 and Xcode 8.
Details: Install Xcode 7 & Xcode 8 side by side

Resources