安装Xcode 3.2.3 w / iPhone SDK 4,得到“Base SDK missing”,看不到其他SDK

时间:2010-07-01 20:22:56

标签: iphone xcode ios4

我创建了这个社区wiki来绑定一些 我在SO上看过的其他Q / A.如果你在这里,你很可能 使用iPhone SDK 4(download link,reg reqd)安装了Xcode 3.2.3的最终版本,然后遇到了其中一个或两个问题:

  • 在您之前使用的Xcode iPhone项目中,您会在某处获得“Base SDK Missing”。像这样:

    Ruh-roh!

  • 在一个相关但更一般的观察中,以前可用的设备或模拟器SDK选择(例如3.0,3.1,3.1.3,...)都不可用于您曾经看过的地方。< / p>

4 个答案:

答案 0 :(得分:165)

概述

我将解释为什么会这样,然后如何修复特定的“Base SDK Missing”问题。您可以跳到底部以获得修复,但我建议您阅读所有这些内容。我也推荐John Muchow在这个问题上的出色take

如果您对Xcode 3.2.4升级特别感兴趣,因为Xcode 3.2.4升级存在严重相关问题,您可能需要授予here

一个SDK来统治所有

这是交易:4.0现在是唯一允许提交的SDK版本 新的或更新的iPhone专用应用程序。这直接来自Apple的iOS 4 Readiness Checklist(注册要求):

  

所有新应用程序和现有应用程序的更新必须   使用iPhone SDK 4构建。请注意,App Store将不会   更长的支持应用程序,目标是iOS 2.x。

据推测 - 我猜这里 - 仅限iPad和通用应用程序 应该使用3.2 SDK。 是4.0&amp; 3.2是SDK的唯一选择。

这也是您的项目现在被破坏的原因,因为之前映射到的SDK是已弃用,gones-ville。

(但)3是幻数

放松。您仍然可以定位运行iPhone OS 3.0的设备(但不低于)。 您使用编译的SDK不限制 - 向下 - iOS版本 你可以编程或支持。一旦你在项目中修补了等等(参见下一节),你可以将“iPhone OS部署目标”设置为较低的iOS版本。如需快速了解如何操作,请参阅下一节中的第7步。

请注意,您现在正在进入一些棘手的地形。您通常的Xcode 3.2.3编译器将不再强制您遵守仅限3.0的调用,也没有针对这些调用的模拟器。如果你想支持4.0功能,你必须做一些条件代码来防止3.0设备崩溃。乐趣。

您仍然可以下载(来自Apple!)并安装以前的Xcode版本或SDK(参见here)。是的,您可以在不同的目录中安装多个Xcode版本,即在/ Developer中只放置一个版本。您可以使用旧的Xcode测试您的应用程序的合规性与3.x SDK,将艰苦的工作转移到花哨的编译器和模拟器。但您无法再使用以前SDK的产品提交到应用商店。

FWIW,我计划在发货前做这个检查。

我的条件是什么条件

Matt Gallagher在名为"Tips & Tricks for conditional iOS3, iOS3.2 and iOS4 code"的版本条件代码上发布了Cocoa with Love帖子。如果您计划有条件地使用4.0功能,强烈建议您查看它。

修复“Base SDK Missing”

  1. 加载项目
  2. 从菜单中选择Project&gt;编辑项目设置...
  3. Under Architecture&gt;基础SDK,选择一个可用的设备 选项:iPhone 3.2或iPhone 4.0。如果您只使用iPhone,那么4.0就是您的选择。
  4. 关闭那个窗口。
  5. 从菜单中选择Project&gt;编辑活动目标“YourTarget”
  6. Under Architecture&gt;基础SDK,选择一个可用的设备 或模拟器选项:iPhone 3.2或iPhone 4.0。
  7. 如果您想要定位以前的iOS版本,那么同样如此 窗口,在部署&gt;下iPhone OS部署目标,选择 您想要支持的最低版本。请注意,支持2.x版本 通过应用商店不推荐使用。请参阅上面的“准备清单”。
  8. Xcode 4及以上的基本SDK位置

    按照上述步骤操作,但对于步骤2,请单击以下内容:

    • 使用导航器侧栏左侧的文件夹图标选择项目导航器
    • 选择项目,该项目位于该视图的顶部。
    • 项目配置将显示在主编辑器面板中;选择顶部和下方的“构建设置”将是“架构”部分。

    Project navigator Build Settings

    (这个答案是Sherman Lo answer question的略微改编的版本

    附录

    有关此主题的更多详细信息也可在此here的第一个答案中找到。还有一些有用的信息{{3}}。

答案 1 :(得分:8)

如果您修复了设置并仍然看到“Base SDK Missing”并且无法构建,请重新加载项目。我退出Xcode,但关闭和重新打开可能也会有效。

答案 2 :(得分:5)

Clay Bridges提供的用于下载早期版本的Xcode和iPhone OS SDK的链接不起作用。然而,编辑这些链接以用'ios'替换'iphone'的第一个实例确实有效,至少对于Snow Leopard链接(现在下载)。

正确的链接以及有关将旧的iOS SDK安装到较新的Xcode安装中的信息来自Chris Fletcher的博客文章:howto install iphone sdk 2.0.3.1 for xcode 3.2强烈推荐!

答案 3 :(得分:3)

我也有同样的问题。当使用多个目标切换回以前的目标时,我也遇到了一个问题xcode会忘记更改一些内容,例如从iOS目标切换到MacOS目标。

选项/ alt单击下拉列表

揭示了一些非常有用的额外选项。