Installing new and old versions of Xcode - iphone

So I saw this post: http://mobiledevelopertips.com/xcode/download-and-install-older-versions-of-xcode-xcode-previous-releases.html
(new location: at iosdevelopertips.com)
about downloading older versions of Xcode. Up to now, I have always just downloaded the newest version of Xcode from the App Store and let it do its thing. Recently on one computer that has Xcode 4.5 installed on it, I noticed that if I create a new project, I only get the iOS 6.0 simulators, not the 5.0 or 5.1.
My first question is, do I need older versions of Xcode to build apps for older OS (e.g. iOS 4, iOS 5.0, 5.1, etc)?
If so, what's the best way of installing these older versions of Xcode. I see that they have the command line tools to download as well. I'm not sure how all that stuff works.
What's the best way to update to the latest Xcode but keeping the old Xcode around? On a different machine that had Xcode 4.4.1 installed, I thought I could download Xcode 4.5 from the ADC website and install it. I downloaded it, double-clicked on the .dmg, then double-clicked on the Xcode file. This then installed Xcode 4.5 without asking me where I wanted it installed so I could keep the older version of Xcode (assuming that I need it as stated in my 1st question).
Thanks!

To answer your questions:
1) Yes. I renname Xcode to add the version number (i.e. Xcode_441.app)
2) I keep an archive of all versions of Xcode that I have downloaded so they are available after Apple pulls them from their download site.
3) Renaming them works for me, and I usually grab the direct download, when available, instead of getting it from the MAS. Try renaming Xcode before doing an install.
You are welcome.

It's possible to have multiple XCode installations by customizing the install path. Also note that the new 4.x install model is app bundles under Applications which are self contained so it's possible to just rename the old before installing the new XCode. You can also download the newest (4.5) from the developer site.
You can also add the old simulators by going to XCode preferences in 4.5.
Look under XCode, preferences, downloads. XCode 4.5 offers the 5.0 and 5.1 simulators for download. The same place that you download the command line tools.
For example, I added the 5.0 Simulator to my XCode 4.5 installation to go along with the 6.0 Simulator:

I noticed that if I create a new project, I only get the iOS 6.0 simulators, not the 5.0 or 5.1.
Choose your project target and in Summary tab, set the lowest Deployment Target for your app (I think the default value is 6.0 in Xcode 4.5).
My first question is, do I need older versions of Xcode to build apps for older OS (e.g. iOS 4, iOS 5.0, 5.1, etc)?
If you've updated from old version of Xcode, you can use the old SDK & simulator in new version.
If so, what's the best way of installing these older versions of Xcode. I see that they have the command line tools to download as well. I'm not sure how all that stuff works.
Actually, different versions of Xcode can stay happily with each other. It is a App Bundle right now.
third question
Just drag the new version of Xcode to Application folder. That's done. :)

Related

iOS simulator only list the latest iOS version. How can I set earlier versions

According to the documentation should be able to choose which iOS version the simulator should run, however only the latest 4.3.2 is listed under "Hardware/Version".
The helps says:
"To set the iOS release used in the simulation environment, choose Hardware > Version, and choose the version you want to test on."
I don't want to support 3.x (although it would be nice) but at least I want to simulate my app on 4.2, 4.1 and 4.0.
What's going on? Why aren't they listed?
UPDATE:
I'm on Lion so I cannot install an earlier version of Xcode. Before my Upgrade I could test different versions easily.
the problem is that you have no other Simulator SDK installed which can be used. As #dorada has mentioned you have to install an older Xcode which in fact doesn't work because you're using Lion. I haven't tried it with Lion but principally it should work like before with Snow Leopard.
I'm referencing to my other answer how to get an older Xcode (don't know if it's still working)
After you have an older Xcode version, mount the image an navigate with terminal to that volume. There should be a hidden folder Packages. open that folder with open . and locate the two .pkg files you need (e.g. iPhoneSDK4_0.pkg and iPhoneSimulatorSDK4_0.pkg) and install both.
They will appear in your root directory and you have to move them to your Developer dir (don't simply overwrite, it will delete all other SDKs. go to the last different folder it should be iPhoneSimulator4.0.sdk\ and copy that one)
DONE (and at that point I have verified it: it works on my Lion. I used the dvd image which I have started backup'ing since 3.2.1)
Although iPortable has the correct answer I decided to post a step-by-step guide which is easer to follow:
Download Xcode 3.1
Mount the dmg file
In Finder menu select "Go\Go to folder" and enter "/Volumes/Xcode and iOS SDK/Packages"
Install the simulators you need (Double click)
Copy the simulation folders from /Platforms/iPhoneSimulator.platform/Developer/SDKs/ to /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/
If your have some SDK missing Install the missing SDK from "/Volumes/Xcode and iOS SDK/Packages" and copy subfolders from /Platforms/iPhoneOS.platform/DeviceSupport/ to /Developer/Platforms/iPhoneOS.platform/DeviceSupport/ (for me they were all there from 3.1 to 4.3)
you may download the older ios sdk / xcode from . https://developer.apple.com/downloads/index.action
(i found this answer in another stack overflow topic actually, but now i can not seem to find that question!)
Open Xcode and in the menu at the top left, where you select what device to run on, click "More Simulators..."
The download section of Xcode preferences will open,
Click the "Components" tab.
You will see a list of simulators that can be installed, click install on version you need.
The simulator will need to restart to install.
To run the newly installed version of the simulator just select it from the run menu in Xcode.
You actually have to install previous simulator versions, they aren't there on a new install.
Maybe you can search and download them somewhere? - we keep them on a shared drive at the office.
After installing the Xcode 4.2 for Snow Leopard, I noticed there was a choice for iPad 3.2 Simulator, but using it just brings up some alerts that say "iOS Simulator could not find the SDK. The SDK may need to be reinstalled." and another alert that says "Simulated application quit. Click Relaunch to try again." with Quit, Switch SDK, and Relaunch buttons.
I can successfully use iPhone 4.0 Simulator, iPhone 4.1 Simulator, iPad 4.2 Simulator, etc up to iPad/iPhone 5.0 Simulator, but really would like to have iPad 3.2 Simulator and iPhone 3.1.3 Simulator and earlier down to 3.0 if possible.
Our apps generally run all the way back to 3.0 and we occasionally receive bug reports from earlier iOS users, and would love to be able to debug these issues more effectively.
I tried the technique summarized by Tibidabo and although I am able to copy the simulator folders as mentioned, and though they show up as choices in Xcode, I cannot get them to actually run as simulators and I get the same problem alerts mentioned above.
What are other developers doing to support debugging of older iOS versions?
Go to Project Settings -> Summary an change Deployment Target.

Switch between Xcode 4.0.2 and 4.2

I am developing an app with Xcode 4.0.2 and iOS 4.3. Now I would like to upgrade to Xcode 4.2 and iOS 5 so that I could make my app ready when iOS 5 releases in October.
I am told by Apple's website that I should not submit apps that are built by Xcode 4.2 and should do it with the older Xcode 4.0.2, since the Xcode 4.2 and iOS 5 thing is still in beta.
But in the following few weeks I still need to have newer versions of my app submitted to App Store. So my question is,
If I upgrade my Xcode to 4.2, is it possible for me to switch back to Xcode 4.0.2?
If yes, how?
Thanks in advance!
You can simply install two versions of Xcode at the same time. During the installation it will let you choose the destination folder; you can pick another folder. For example, I use /Developer/Xcode (4.2). (However, if you did install 4.2 over 4.0.2, I don't think you would have a problem if you just ran the 4.0.2 installer again to downgrade.)
Taken from About Xcode.pdf (<Xcode>/About\ Xcode.pdf)
Installation
The Xcode installer will create the folder /Developer on the root of your boot partition, and place the Xcode developer tools and SDKs in this folder. If you have a previous version of Xcode you would like to preserve, you can copy the existing installation from /Developer to another folder to prevent having it updated automatically by the installer.
I would be cautious of this note (possible problems from incompatibility of tools???)
NOTE: The Xcode installer also installs system components and UNIX command line tools in a shared location on your Mac. Only one version of these components can exist on a computer at a time, and the last installed version replaces any previously installed set.
I always make sure I have a bootable drive with a decent working copy of xcode ready for releases in case I need to push a quick fix.
You can install 2 XCode in different folders.
Then you can switch back and forth.
Can I have multiple Xcode versions installed?

upgrading Xcode

I am currently working with Xcode 3.1.3 , i wanted to upgrade it to new version of Xcode 4.0.My question is will i be able to run my older applications which were built on Xcode 3.1.3 on the new version of Xcode.
Thanks in advance
Yes you will be able to do so. However PPC support and 10.4 support is dropped on the mac. If you want to play safe, you can install Xcode 4 in a separate location leaving your Xcode 3.1.3 untouched, so you can switch between these two.
The project format of Xcode 3.2 and Xcode 4 is the same.
One option is to install Xcode 4 into another directory. I just installed the latest version yesterday and it offers you this option. Here is a link here about this also. There is also a StackOverflow question here. If everything works as you expect you can delete Xcode 3.1.3. If not, you still have your current version around.

install iphone sdks side by side

Im trying to get my xCode to contain all iPhone sdk's from 4 back to 2. But when I download the DMG files, it seems to only allow me to have an xCode with SDK versions 2 - 3.1 OR 3.2 - 4, not all together.
How can I install the SDK's into one xCode so I can build for all different OS versions?
Thanks
EDIT::
Ok so I know I can set the base SDK in xcode, but the options I have are only 3.2 or 4.0, I cant seem to install the 3.1 or earlier SDK's how can this be done?
Final Edit::
Ok got it solved, basically you only need to have an older version of xcode installed to get earlier simulators running, otherwise the articles given to me in my answers as well as others were very helpful:
http://www.clarkcox.com/blog/2009/06/23/sdks-and-deployment-targets/
Install xCode 3.2.3 w/ iPhone SDK 4, get "Base SDK missing", can't see other SDKs
How To Make iPhone App compatible with multiple SDK (firmware) versions
http://cocoawithlove.com/2010/07/tips-tricks-for-conditional-ios3-ios32.html (possibly the best one)
Is there any particular reason you need to do this? Are you trying to develop applications that will run on iOS 4.x and older versions (3.x)? You can still develop applications which will run on iOS 3.1.x with the iOS 4.x sdk.
Take a look at the following article: http://www.clarkcox.com/blog/2009/06/23/sdks-and-deployment-targets/
I tried the same thing some time ago, and it seems some minor SDK versions are automatically removed during the install process...
You may tried to copy them before installing the other XCode versions, and re-install them just after.
They are located in /Library/Platforms/iPhoneOS.platform/Developer/SDKs/ and /Library/Platforms/iPhoneSimulator.platform/Developer/SDKs/.
Note that you can also choose to install each XCode version in a separate directory.
You will lose a lot of hard disk space, and you'll have multiple versions of XCode, each one with different SDK versions.

Linking against older iPhone OS in Xcode 3.2.3

I installed the new GM iPhone sdk. When I try to compile against iOS 3.0, it claims that libraries are
missing. What now? I think that I have the install DMG somewhere for 3.2.2, if that helps.
Always use the newest SDK available. There is little to be gained (and a lot you give up) by building against older SDKs. It limits both what APIs you can call and also prevents your code from taking advantage of the OS features on newer devices.
If you need to deploy on older OS versions, just set the Deployment Target to the earliest version you need to run on. You don't need its SDK.
Do the following
sudo /Developer/Library/uninstall-devtools –mode=all
(This will uninstall the current XCode installation)
Then install first old XCode (3.2 final) in default folder (/Developer)
Then install the new XCode (3.2.3 GM) in other folder (/DeveloperBeta)
This way you will have both. And can launch xcode from either /Developer/Applications/Xcode.app or /DeveloperBeta/Applications/Xcode.app
3.2.3 last beta did remove all other SDK's cause to many people tried to publish Apps developed with the beta SDK, which would not be accepted by Apple. With GM it will be the same