升级到XCode 3.2.3 Beta4和OS 4.0后,iPhone模拟器3.x未列出。

19

我最后一次安装 Xcode 3.2.3 Beta 2(支持 OS 4.0)时,其中包含了所有的 iPhone 设备和模拟器 3.x 版本。

现在,我更新到 Xcode 3.2.3 Beta 4(支持 OS 4.0),但是它在 XCode 中不再列出 3.x 版本的 SDK,无论是模拟器还是设备。当我运行一个针对 3.1.2 版本开发的应用程序时,当前 SDK 被列为“缺少基本 SDK”。

我知道 3.2.3 将基本 SDK 更改为 4.0,但是为什么没有任何 3.x 版本的设备可用呢?

当我进入以下路径时:

/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs

仅有两个可用文件:

iPhoneSimulator3.2.sdk
iPhoneSimulator4.0.sdk

然而,当我前往:

/Developer/Platforms/iPhoneOS.platform/DeviceSupport

3.0
3.0.1
3.1
3.1.1
3.1.2
3.1.3
3.2
4.0 (8A274b)

我已经尝试重新安装最新版本的XCode DMG,但无济于事。


1
这在 GM 版本的 XCode 3.2.3 中仍然发生。哎呀! - Dan Fabulich
1
对于那些可能不知道的人,这也被纳入了最终版本中。我在这里有一个社区维基:https://dev59.com/FHA75IYBdhLWcg3wrrNS。 - Clay Bridges
8个回答

8
你应该阅读:http://www.clarkcox.com/blog/2009/06/23/sdks-and-deployment-targets/。这篇文章很好地解释了基础SDK和部署目标之间的区别-简而言之,基础SDK是您希望支持的最高SDK版本,而部署目标是您将支持的最低版本。您需要确保两者都被正确选择,并且您的代码将适当地支持这些SDK的功能。

7

看起来他们已经把它们删除了。

如果您正在为旧操作系统开发,则不应使用4.0 Beta SDK。根据发布说明:

iPhone OS 4 beta 4仅供开发目的使用。此软件应仅安装在专门用于iPhone OS 4 beta应用程序开发的设备上。如果您没有专门用于iPhone OS 4 beta应用程序开发的设备,请勿安装此软件。

我建议您将3.x sdk与4.0并行安装。我在我的机器上保留了两个Developer目录/ Developer,用于维护针对3.0和3.1编写的应用程序,以及/ Developer4.0Beta,用于将应用程序迁移到4.0,并尝试即将推出的新功能。

安装到另一个文件夹的选项在安装sdk时有点难以注意到,但诀窍是在“安装类型”步骤中通过默认目录旁边的上/下箭头。按下后,它将允许您选择其他目录。

alt text

请记住,App;le不允许您提交使用Beta SDK构建的应用程序,因此我建议仅使用4.0 Beta构建4.0应用程序,并牢记API可能会在GM发布之前发生更改。


谢谢Brad。如何并行运行两个版本?当我再次安装3.2时,它会删除4.0的功能。而当我安装4.0时,它不会给我自定义目录的选项。我只需先安装4.0,然后重命名Developer文件夹吗?谢谢! - Jon
@Jon,我编辑了答案以显示如何更改默认目录。 这有点不太明显,我在安装各种版本的 SDK 的前几次都不知道它的存在。 - Brad The App Guy
@Jon,重命名文件夹也应该可以。那就是我在找到那些小箭头之前所做的。 - Brad The App Guy
哇,谢谢Brad!我是个高级用户,甚至都没注意到这个!(不过,我猜大多数开发者都是高级用户,哈哈)只是确认一下:没有办法在旧的3.1.x SDK上运行新的XCode 3.2.3 Beta4吗?必须选择其中一个? - Jon
@jon 我尝试手动将3.1/3.2 SDK的SDK文件从4.0 xcode dev文件夹中加载(拖放),但没有成功。我认为通过一些plist黑客技巧,你可以让它工作。 - Jonathan
最终版已经发布,但仍然缺少iPhone SDK 3.1及更早版本 - 如果您还使用较旧的设备版本进行开发(调试/测试),我建议您不要升级。 - adib

7

如果“iPhone OS Deployment Target”在部署下丢失怎么办?(我正在查看所有配置的所有设置,以确保。)我的一个项目有它,而另一个没有,但两个项目最初都是使用Xcode 3.1.x创建的。多么奇怪。(我现在使用Xcode 3.2.3,将4.0用作“Base SDK”,但其中一个项目似乎已经失去了与“iphoneos3.0”作为部署目标的联系。) - Joe D'Andrea
1
根据我的经验,这不是项目设置的一部分。相反,您必须选择目标,然后您将看到它。 - Clay Bridges

1

更改iPhone OS部署目标即可解决此问题,就像上面nicktmro所提到的那样。

我正在我的iPhone上运行新的os4.0和新的4.0sdk。我必须将我的BAse SDK设置为4.0,但是在“获取信息>构建”中向下滚动到部署部分。最后一个选项应该说iPhone OS部署目标。

您可以选择所有的操作系统版本,甚至可以选择1.0版本。


1

这是给那些只在项目级别更改基本SDK版本时看到MacOSX部署目标的人。我发现,如果我只将Base SDK设置为iPhone OS 4.0,我在项目级别上没有得到iPhone OS Deployment Target选项。如果我在目标级别上设置BaseSDK和iPhone OS Deployment Target(在更改SDK后立即显示),然后我可以回到项目中查看iPhone OS Deployment Target设置。

在采取蛮力方法之前,这可能值得一试。

谢谢。


0
如果在部署中完全“缺失”iPhone OS Deployment Target,并且您正在查看All ConfigurationsAll Settings,则可能需要强制执行一些操作。
在我的情况下,我关闭了Xcode中的项目,然后打开了项目的(工作)xcodeproj包。对于那些不知道的人,只需右键单击xcodeproj“文件”,然后选择Show Package Contentsxcodeproj实际上是一个目录)。为了安全起见备份project.pbxproj,然后查看每个XCBuildConfigurationbuildSettings,确保这两行出现:
IPHONEOS_DEPLOYMENT_TARGET = 3.0;
SDKROOT = iphoneos4.0;

这将以iOS 4.0作为基础SDK(设备,而非模拟器)的目标,但将部署目标设置为最低iOS 3.0。一旦重新打开项目,它甚至会在Xcode中正确显示。问题解决了!


0

尽管3.x没有列出,但您仍然可以将其指定为iPhone OS部署目标的目标。


0
要显示iPhone OS部署目标,请右键单击项目并转到“获取信息”。 有一个“显示”下拉菜单,请选择“所有设置”,在部署部分的底部是iPhone部署目标。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接