If you care about the build number (like "10B61"), especially during betas, the best place to check which version of Xcode and related SDKs you have installed is to use "System Information". Once there, you'll see version and build numbers for all of the major components of the Developer Tools.
I'm going to explain why this is going on, and then how fix the specific "Base SDK Missing" problem. You can skip to the bottom for just the fix, though I recommend reading all of this. I also recommend John Muchow's excellent take on this issue.
If you are specifically interested in the Xcode 3.2.4 upgrade, which has a strongly related problem, you might want to confer here.
Here's the deal: 4.0 is now the only SDK version allowed for submitting new or updated iPhone-only apps. This is direct from Apple's iOS 4 Readiness Checklist (reg reqd):
All new applications and updates to existing applications must be built with iPhone SDK 4. Please note, the App Store will no longer support applications that target iOS 2.x.
Presumably -- I'm guessing here -- iPad-only and universal apps should use the 3.2 SDK. That is why 4.0 & 3.2 are your only choices for SDKs.
That is also why your project is now broken, since the SDK it was previously mapped to is deprecated, gones-ville.
Relax. You can still target devices running iPhone OS 3.0 (but not lower). The SDK you use to compile does not limit -- downward -- what iOS version you can program to or support. Once you've patched things up in your project etc. (cf. next section) you can set "iPhone OS Deployment Target" to a lower iOS version. For a quick shot of how to do this, cf. step 7 in the next section.
Note that you are now entering some tricky terrain. Your usual Xcode 3.2.3 compiler will no longer be enforcing your compliance to 3.0-only calls, nor does it have a simulator for these. And if you want to support 4.0 features, you'll have to do some conditional code to prevent crashes on 3.0 devices. Fun.
You can still download (from Apple!) and install a previous Xcode version or SDK (cf. here). Yes, you can install multiple Xcode versions, in different directories, i.e. put only one version in /Developer. You can use the old Xcode to test your app's compliance vs. a 3.x SDK, moving the hard work to a fancy compiler, and simulator. But you can no longer use the products of the previous SDKs to submit to the app store.
FWIW, I plan on doing just this check before I ship.
Matt Gallagher has a Cocoa with Love post on version conditional code entitled "Tips & Tricks for conditional iOS3, iOS3.2 and iOS4 code". If you are planning on conditionally using 4.0 features, this is a strong recommendation to check it out.
Follow the steps above, but for Step #2, click the following:
(This answer is a slightly-adapted version of Sherman Lo's answer )
More detailed information on this topic can also be found in the first answer to this question. There's also some useful info here.
If you fix your settings and still see "Base SDK Missing" and can't build, reload your project. I exited Xcode, but closing and re-opening would probably also work.
The links given by Clay Bridges to download earlier versions of Xcode and iPhone OS SDKs do not work. However editing these links to replace the first instance of 'iphone' with 'ios' does work, at least for the Snow Leopard link (downloading now).
The correct links, plus information on installing older iOS SDKs into newer Xcode installs, came from this blog entry by Chris Fletcher: howto install iphone sdk 2.0.3.1 for xcode 3.2 Highly recommended!
I had this same problem as well. I also had an issue when using multiple targets switching back to a previous target xcode would forget to change a few things, like switching from an iOS target to a MacOS target.
option/alt clicking the drop down
revealed some extra options that where very useful.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With