概述
我将解释为什么会这样,然后是如何解决特定的“Base SDK Missing”问题。您可以跳到底部进行修复,但我建议您阅读所有这些内容。我还推荐 John Muchow 在这个问题上的出色 take。
如果您对 Xcode 3.2.4 升级特别感兴趣,它有一个密切相关的问题,您可能想授予here。
一个 SDK 统统统统
这是交易:4.0 现在是唯一允许提交的 SDK 版本
新的或更新的 iPhone 专用应用程序。这是直接来自 Apple 的 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 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 功能,强烈建议您检查一下。
修复“缺少基本 SDK”
- 加载您的项目
- 从菜单中,选择项目 > 编辑项目设置...
- 在架构 > 基础 SDK 下,选择可用设备之一
选项:iPhone 3.2 或 iPhone 4.0。如果您只使用 iPhone,那么 4.0 是不错的选择。
- 关闭那个窗口。
- 从菜单中,选择项目 > 编辑活动目标“YourTarget”
- 在架构 > 基础 SDK 下,选择可用设备之一
或模拟器选项:iPhone 3.2 或 iPhone 4.0。
- 如果你想定位以前的 iOS 版本,那么在同一个
窗口,在部署 > iPhone OS 部署目标下,选择
您要支持的最低版本。请注意,支持 2.x 版本
通过应用商店已弃用。请参阅上面的“准备检查清单”引述。
Xcode 4 及更高版本的基础 SDK 位置
按照上述步骤操作,但对于第 2 步,请单击以下内容:
- 使用导航器侧边栏左侧的文件夹图标选择项目导航器
- 选择项目,它将位于该视图的顶部。
- 项目配置将出现在主编辑器面板中;选择顶部的“构建设置”,下方将是“架构”部分。
(这个答案是 Sherman Lo 的 answer 的略微改编版本)
附录
有关此主题的更多详细信息也可以在此question 的第一个答案中找到。还有一些有用的信息here。