安装的Xcode 3.2.3 W/iPhone SDK 4,得到“基地SDK缺少的”,也看不到其他的SDK

问题描述:

我创造了这个社区维基的若干 其他Q/A的我在这里看到的SO绑在一起。如果你在这里,你可能已经安装 3.2.3的Xcode与iPhone SDK 4(download link,REG REQD)的最终版本,然后再遇到这些问题的一个或两个:安装的Xcode 3.2.3 W/iPhone SDK 4,得到“基地SDK缺少的”,也看不到其他的SDK

  • 在你之前正在运行的xCode iPhone项目中,您会在某处找到“Base SDK Missing”。事情是这样的:

    Ruh-roh!

  • 在相关,但更普遍的观察,没有设备或模拟器SDK的选择以前提供的一整套的(如3.0,3.1,3.1.3,...)可你曾经看过他们的地方。

概述

我要解释为什么这是怎么回事,然后如何解决具体的“基地SDK缺少”的问题。你可以直接跳到底部,但我建议阅读所有这些。我还建议对这个问题约翰Muchow的优秀take

如果您在Xcode 3.2.4升级,其中有一个密切相关的问题特别感兴趣,您可能要赋予here

一个SDK来统治他们所有

这里的交易:现在4.0是允许提交 新的或更新的iPhone,只是应用的唯一的SDK版本。这是苹果公司的iOS 4 Readiness Checklist(REG REQD)直接:

所有新应用程序和更新现有的应用程序必须 与iPhone SDK 4.建请注意,在App Store不会 不再支持应用程序为目标的iOS 2 。X。

大概 - 我在这里猜测 - 仅iPad和通用应用程序 应该使用3.2 SDK。 就是为什么4.0 & 3.2是你的SDK的唯一的选择。

这也是为什么你的项目现在被打破,因为它先前映射到的SDK是已弃用,gones-ville。

(但是)3是一个幻数

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

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

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

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

我的条件是

马特·加拉格尔什么条件与资格"Tips & Tricks for conditional iOS3, iOS3.2 and iOS4 code"版本上条件代码爱情后可可。如果您计划有条件使用4.0功能,则强烈建议您查看它。

修复“基地SDK缺少”

  1. 装载该项目
  2. 从菜单中选择项目>编辑项目设置...
  3. 在建筑>基础SDK,选择可用的设备之一 选项:iPhone 3.2或iPhone 4.0。如果你只有iPhone,4.0是要走的路。
  4. 关闭该窗口。
  5. 从菜单中选择项目>编辑活动目标“YourTarget”
  6. 在建筑>基础SDK,选择可用的设备 或模拟器选项之一:iPhone 3.2和iPhone 4.0。
  7. 如果要定位以前的iOS版本,则在同一个 窗口的部署> iPhone操作系统部署目标下,选择要支持的最低版本 。请注意,不支持通过应用商店支持2.x版本 。请参阅上面的“准备就绪清单”报价。

基地SDK位置的Xcode 4及以上

按照上述步骤,但对于第2步,单击下面的:

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

      Project navigator           Build Settings

(这个答案是Sherman Loanswer一个稍微改编版)

附录

更详细的信息在这个题目也可以在第一个答案中找到到这个question。还有一些有用的信息here

+3

对于那些认为项目设置项目不存在的人来说,对于那些盲目的快速注意,它是Project> Edit Project Settings。 – 2010-07-13 17:02:51

+0

@Lou Z .:修正,谢谢 – 2010-07-14 19:57:08

+1

'你仍然可以下载(从Apple!)并安装以前的Xcode版本(例如3.1.4:Leopard,Snow Leopard)。'该链接实际上是3.1.3 sdk,而不是3.1.4。 – Remover 2010-07-19 10:12:15

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

选项/ alt单击下拉菜单

显示了一些额外的选项,其中非常有用。

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强烈推荐!

+0

好的信息,史蒂夫。我想我的答案是一个社区wiki。任何机会,你可以编辑它与正确的信息。谢谢。 – 2010-09-28 16:48:31

+0

我是*的新手,我想我需要更多的“点数”才能让我编辑他人发布的帖子。界面并没有给我任何明显的方式来为你的帖子说'编辑这篇文章'。抱歉。 – SteveCaine 2010-10-10 20:57:52

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

+0

这是为什么?看起来奇怪的是必须关闭xcode并加载备份,只是设置更改的b/c:0 – RyBolt 2011-03-09 18:30:24

+0

好问题RyBolt,但它就是这样。苹果公司必须在某处缓存某些东西,然后重新加载,但这只是一种猜测。 – 2011-03-10 01:19:35