tags:

views:

2671

answers:

2

When you update Xcode to 3.2.4, your previously working Xcode iOS project gives you the message "Base SDK Missing". Something like this:

Ruh-roh!

What gives? How to fix?

+13  A: 

The Problem

iOS SDK 4.0 is gone in this release, replaced by iOS SDK 4.1. Deets in "The Explanation" below. (NB: this repeats some information in my previous Q/A regarding 3.2.3).

The Fix

To fix this specific problem, you need to reset the Base SDK for your target(s), etc. You can either do that for the entire project (most folks), or for each target and/or configuration which applies. Rarely, you might need to do both.

Edit Project Settings

  1. Load your project
  2. From the menu, select Project > Edit Project Settings...
  3. Click the "Build" tab.
  4. Under "Configurations" select "All Configurations".
  5. Go to the Change Base SDK section below.

Edit Specific Target/Configuration Settings

  1. Load your project
  2. From the menu, select Project > Active Target > "YourTarget"
  3. From the menu, select Project > Edit Active Target "YourTarget"
  4. Click the "Build" tab.
  5. Under "Configurations" select "All Configurations", or the Configuration you want.
  6. Go to the Change Base SDK section below.

Change Base SDK

  1. Under Architecture > Base SDK, choose one of the available device options: iOS Device 3.2 or iOS Device 4.1. If you are iPhone-only, 4.1 is the way to go.
  2. If you want to target previous iOS versions, then in that same window, under Deployment > iPhone OS Deployment Target, select the lowest version you want to support. Note that support for 2.x versions through the app store is deprecated.

The Explanation

iOS SDK 4.0 is gone in this release, replaced by iOS SDK 4.1. This is very similar with what happened with the 3.2.3 upgrade, which I covered in detail here. You can still use 3.2.4 to target iOS versions down to 3.0, but AFAIK, you must compile against the 4.1 SDK with Xcode 3.2.4. If this statement confuses you, study the following sentence closely:

The iOS SDK you compile against -- the "Base SDK" -- does not downward limit what iOS versions you can support.

In fact, there are two different settings, cf. Change Base SDK above. If you remain confused, take heart, and read my detailed post on the previous switchover, which is itself chockablock with links to good stuff.

Clay Bridges
A: 

Hello and thanks for this article. I am not a programmer just a QE and need to test some movie playback on different iphone OS versions. Up until 3.2.3, I was able to select an older simulator version and see the bugs between each OS version. After I upgraded to 3.2.4 and fixed the missing SDK issue, I now only see the 4.0 and 4.1 versions!!

I have changed the target to the lowest but that still does not let me see the simulator with an older OS version. I'm so frustrated...

Moca
Sounds like you need to install one of the older SDKs, probably in a separate directory. Read this thoroughly: http://stackoverflow.com/questions/3161385. Cheers.
Clay Bridges