views:

3226

answers:

6

After my upgrade to Snow Leopard and Xcode 3.2 (which I really regret a lot!!), Xcode lost all the SDK's. I'm one of those old-fashioned idiots who still want to develop for 2.2.1. But Apple does not offer me an old SDK download.

Now I was clever and made tons of time machine backups. But: What's the preferred way to get iPhone SDK 2.2.1 running with Xcode 3.2? Some guys said that's generally possible. I do hope so because I still don't believe in all those "faked" stats, and besided that, my app doesn't benefit from 3.x additional features so I would not want to constrain my market just for that lazyness.

Any idea?

+6  A: 

Get the 3.1 final sdk, it has the 2.2.1 sdk in it. On disk its usual location is:

/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.2.1.sdk

Also included is 3.0 and 3.1.

zaph
A: 

Also take a look at this:

http://stackoverflow.com/questions/1211656/how-can-i-make-an-iphone-os-2-1-project-with-the-new-xcode/1211692#1211692

Jongsma
This does not work anymore.
Eonil
+5  A: 

XCode 3.2 should have the prior iPhone SDKs available, just make sure you are setting your project's Base SDK setting to "iPhone OS 2.2.1". (Right-click on your top-level project icon in the Groups & Files browser in XCode and choose "Get Info", then go to the Build tab.)

fbrereto
No, it does not. The older 2.x SDKs are not included in the disk image.
Martin Winter
SDK 3.2 does not include 2.x.
Eonil
+5  A: 

Regardless of whether or not you're targeting iPhone OS 3.0 or not using any 3.0 specific features, you should always compile your app against the latest SDKs to benefit from bug fixes and performance improvements.

You can compile against the 3.0 SDK and set the iPhone OS Deployment Target to 2.2.1 and still cater for users who are using 2.2.1.

You may find that some methods have been deprecated, but that doesn't stop you from using them until you're ready to move on.

Jasarien
A: 

Like I said on other threads, the SDK and Deployment Target are different. You can still use the latest SDK to build for an older OS. Just go to your Target settings and under the Deployment section set the iPhone OS Deployment Target to whatever you'd like.

Cheers, Raffaello Colasante

Raffaello Colasante
+1  A: 

Raffaello and others are correct: you can use the latest SDK and still target (and test on) older SDKs. For example, I'm using iOS4.0 (xcode 3.2.3) and testing on my iPhone 3g running 3.1.3.

To clarify the procedure: - go to project info > build tab - set Architectures:Base SDK (most likely) the latest - set Deployment:iPhone OS Deployment Target to what ever you want (I have the option to go as far back as 2.0).

Hope this helps someone.

Jacob Mouka