开发者

Install Xcode 3.2.4, get "Base SDK Missing"

When you update Xcode t开发者_开发技巧o 3.2.4, your previously working Xcode iOS project gives you the message "Base SDK Missing". Something like this:

Install Xcode 3.2.4, get "Base SDK Missing"

What gives? How to fix?


The Problem

iOS SDK 4.0 is gone in this release, replaced by iOS SDK 4.1. Details 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.


I ran into the same problems for 3.2.5 and followed the same instructions. It didn't work for me, but I noticed that new projects would work properly. When I grepped ShareKit.xcodeproj/project.pbxproj, I noticed that there were still stray references to iphoneos4.0 in the file for SDKROOT param even after changing it in xcode. Manually editing this file and changing all references of SDKROOT to iphoneos fixed the problem. Hope that helps someone.


For all older projects, select the main window, select Option-Cmd-E, choose build and "latest ios...".

Close the build window.

In the main window, option-click the dropdown for Base SDK and you should see the latest build available.

It's still a pita, but it's easier than navigating, closing windows, etc....

If anyone knows a better method, I'd be happy to hear it...

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜