Cocoa(OSX)和CocoaTouch(iPhone)组件在同一个Xcode项目文件中?

时间:2009-07-22 18:59:14

标签: iphone cocoa cocoa-touch xcode

是否可以拥有一个包含Cocoa(MacOSX)和CocoaTouch(iPhone)版本组件的Xcode项目文件?

我认为我已经接近,直到我意识到您需要在项目设置中设置“所有配置的基础SDK”才能调用交叉编译器(并且可以找到并正确处理任何CocoaTouch框架)通过Xcode)。

由于这是项目范围的设置,我不知道如何在同一个项目文件中同时拥有MacOSX和iPhoneOS目标。

指定:

SDKROOT = iphoneos3.0

在xcconfig文件中(仅限iPhone目标使用)似乎不起作用。

1 个答案:

答案 0 :(得分:1)

是的,你可以,但有一些小故障。

首先,您可以通过多种方式覆盖任何Base SDK。一个是您可以在检查器底部的齿轮和“添加构建设置条件”,它允许您根据目标体系结构等条件化条件化任何构建设置。

其次,即使您有项目范围设置,也可以按目标覆盖它。因此,如果你有单独的目标,你可以使用他们的SDKROOT将SDKROOT添加到各种目标。

第三,在Xcode窗口的弹出窗口中选择的SDK会覆盖其他内容。因此,如果你在弹出窗口中有“Base SDK”之外的东西,它将被使用。此外,如果你切换它(从“Base SDK”到“iPhone模拟器”),然后你将目标切换到不支持当前选择的SDK的目标,它将会取消选择,但实际上并没有正确自动恢复Base SDK,您需要在弹出窗口中重新选择它。

我仍然不能始终将多个arch一起构建在一起作为聚合的一部分(例如,有一个OS X目标预处理一些构建的资源,以便它可以在以后的目标构建中用作构建阶段iPhone应用程序)。