我创建了这个社区wiki来绑定一些 我在SO上看过的其他Q / A.如果你在这里,你很可能 使用iPhone SDK 4(download link,reg reqd)安装了Xcode 3.2.3的最终版本,然后遇到了其中一个或两个问题:
在您之前使用的Xcode iPhone项目中,您会在某处获得“Base SDK Missing”。像这样:
在一个相关但更一般的观察中,以前可用的设备或模拟器SDK选择(例如3.0,3.1,3.1.3,...)都不可用于您曾经看过的地方。< / p>
答案 0 :(得分:165)
我将解释为什么会这样,然后如何修复特定的“Base SDK Missing”问题。您可以跳到底部以获得修复,但我建议您阅读所有这些内容。我也推荐John Muchow在这个问题上的出色take。
如果您对Xcode 3.2.4升级特别感兴趣,因为Xcode 3.2.4升级存在严重相关问题,您可能需要授予here。
这是交易: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。
放松。您仍然可以定位运行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功能,强烈建议您查看它。
按照上述步骤操作,但对于步骤2,请单击以下内容:
(这个答案是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单击下拉列表
揭示了一些非常有用的额外选项。