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

Cla*_*ges 80 iphone xcode ios4

我创建了这个社区wiki,将我在这里看到的其他一些Q/A绑定在一起.如果您在这里,您可能已经安装了最终版本的Xcode 3.2.3和iPhone SDK 4(下载链接,reg reqd),然后遇到以下一个或两个问题:

  • 在您之前使用的Xcode iPhone项目中,您会在某处获得"Base SDK Missing".像这样的东西:

    RUH-ROH!

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

Cla*_*ges 165

概观

我将解释为什么会这样,然后如何修复特定的"Base SDK Missing"问题.您可以跳到底部以获得修复,但我建议您阅读所有这些内容.我还建议约翰Muchow的优良采取这个问题.

如果您对Xcode 3.2.4升级特别感兴趣,它有一个非常相关的问题,您可能想在此处进行讨论.

一个SDK来统治它们

这是交易:4.0现在是唯一允许提交新的或更新的iPhone专用应用程序的SDK版本.这直接来自Apple的iOS 4准备清单(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 OS部署目标"设置为较低的iOS版本.如需快速了解如何操作,请参阅 下一节中的第7步.

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

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

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

我的病情是什么条件

Matt Gallagher在版本条件代码上发布了一篇Cocoa with Love帖子,名为"条件iOS3,iOS3.2和iOS4代码的提示与技巧".如果您计划有条件地使用4.0功能,强烈建议您查看它.

修复"Base SDK Missing"

  1. 加载您的项目
  2. 从菜单中选择Project> Edit Project Settings ...
  3. 在Architecture> Base SDK下,选择一个可用的设备选项:iPhone 3.2或iPhone 4.0.如果你只是iPhone,4.0就是你要走的路.
  4. 关闭那个窗口.
  5. 从菜单中选择Project> Edit Active Target"YourTarget"
  6. 在Architecture> Base SDK下,选择一个可用的设备或模拟器选项:iPhone 3.2或iPhone 4.0.
  7. 如果要定位以前的iOS版本,则在同一窗口中的"部署">"iPhone OS部署目标"下,选择要支持的最低版本.请注意,不推荐通过应用商店支持2.x版本.请参阅上面的"准备清单"报价.

Xcode 4及更高版本的基本SDK位置

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

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

      项目导航器           构建设置

(此答案是一个稍微适配版本谢尔曼罗答案)

附录

有关此主题的更多详细信息也可以在此问题的第一个答案中找到.还有一些有用的信息在这里.

  • 我认为项目设置项不存在的快速注释是项目>编辑项目设置. (3认同)
  • 请注意,目标设置会覆盖项目设置; 你不必在两个地方都设置它.我建议您不要在目标设置中设置它(如果它在那里则删除它),然后只在项目设置中设置它.顺便说一句:如果你在项目设置中设置它,请确保选择了所有配置.(或使用"常规"选项卡并通过"所有配置的基本SDK"弹出窗口进行设置). (2认同)

Joh*_*hen 8

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


Ste*_*ine 5

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

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