使用iPhone SDK 4安装Xcode 3.2.3,获取“缺少基本SDK”,看不到其他SDK


80

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

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

    !

  • 在一个相关但更普遍的观察中,以前查看设备或模拟器SDK选项(例如3.0、3.1、3.1.3等)不可用。

Answers:


165

总览

我将解释为什么会这样,然后解决特定的“ Base SDK Missing”问题。尽管我建议阅读所有这些内容,但是您可以跳到最下面以获取解决方案。我还建议约翰Muchow的优良采取这个问题。

如果您对Xcode 3.2.4升级特别感兴趣,而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已弃用,即goss-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)在版本号为“有条件的iOS3,iOS3.2和iOS4代码的提示与技巧”的条件代码中有一条可可与爱的帖子。如果您打算有条件地使用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 OS部署目标”下,选择要支持的最低版本。请注意,不赞成通过应用程序商店支持2.x版本。请参阅上面的“准备情况检查表”报价。

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

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

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

      项目导航器           构建设置

(此答案是对Sherman Lo答案的稍加修改的版本)

附录

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


3
对于那些我认为项目设置项不存在的盲人的快速说明,它是项目>编辑项目设置。
Lou Zell

1
“您仍然可以下载(从Apple!)并安装以前的Xcode版本(例如3.1.4:Leopard,Snow Leopard)。” 该链接实际上适用于3.1.3 SDK,而不适用于3.1.4。
卸妆2010年

民间:这是一个Wiki,请随时自行修复。
粘土桥

2
请注意,目标设置将覆盖项目设置。您不必在两个地方都设置它。我建议您不要在目标设置中进行设置(如果存在,则将其删除),然后仅在项目设置中进行设置。顺便说一句:如果确实要在项目设置中进行设置,请确保已选择所有配置。(或使用“常规”选项卡,并通过“所有配置的基本SDK”弹出窗口进行设置)。
geowar

1
您可能需要更新此答案以包括新的最新SDK。
史蒂文·费舍尔

8

如果您修复设置后仍然看到“缺少基本SDK”并且无法生成,请重新加载项目。我退出了Xcode,但是关闭并重新打开也可能有效。


为什么是这样?似乎必须关闭xcode并仅加载设置更改的b / c似乎很奇怪:O
RyBolt 2011年

好问题,RyBolt,事实就是如此。Apple必须在某处缓存某些内容,然后重新加载将其转储,但这只是一个猜测。
约翰·史蒂芬

5

Clay Bridges提供的下载Xcode和iPhone OS SDK早期版本的链接不起作用。但是,至少对于Snow Leopard链接(现在下载),编辑这些链接以将“ iphone”的第一个实例替换为“ ios”确实可行。

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


好消息,史蒂夫。我认为我的答案是社区Wiki。您可以使用正确的信息对其进行编辑。谢谢。
粘土桥

我是StackOverflow的新手,我想在网站允许我编辑其他人的帖子之前,我需要更多的“要点”。用户界面没有给我任何明显的方式来为您的帖子说“编辑此帖子”。抱歉。
SteveCaine 2010年

3

我也有同样的问题。当使用多个目标切换回先前的目标xcode时,我会遇到一个问题,那就是忘记更改一些事情,例如从iOS目标切换到MacOS目标。

选项/ alt单击下拉菜单

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.