Base SDK versus OS Deployment Target

A few weeks back, I upgraded to Snow Leopard, and noticed I no longer had the option of choosing 2.0 through 2.2.1 as my active SDK. I was starting a new project, and didn’t worry about it, thinking I’d figure it out later.

Well, now it’s later, and I spent the last hour or so figuring this out, so I thought I’d post it here in case someone else finds this helpful.

In the apple dev forums, I found a couple of people suggesting you need to re-install the old versions of the dev tools, then move my Developer directory, and re-install the latest tools. This seems silly, since I still have the “/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.2.1.sdk” directory. It’s possible this suggestion is in order to get the old version of the simulator, although I’m not entirely sure why you’d want to have that.

Another helpful commenter said “Base SDK does not set compatibility. It sets your available feature set. The iPhone OS Deployment Target build setting controls compatibility. Set it to 2.0 or 2.2.1 to allow your app to launch on earlier OS versions.” That made much more sense to me, but I couldn’t immediately find the “iPhone OS Deployment Target” setting in my project settings. I did have it though, it just wasn’t showing up for some reason. When I finally searched for IPHONEOS_DEPLOYMENT_TARGET it showed up, and with a handy dropdown full of old SDK versions.