使用Xcode项目与OS X框架目标和iOS静态库目标构建错误

时间:2011-01-28 12:40:44

标签: xcode macos ios

我正在编写一个适用于OS X和iOS的可重用代码库。我创建了一个包含2个目标的Xcode项目。一个目标是OS X的框架。另一个是iOS的静态库。

我发现OS X框架目标的构建正在尝试使用iOS标头。我知道这是因为定义了TARGET_OS_IPHONE导致构建尝试查找UIKit.h等。这当然导致构建框架目标失败,因为OS X框架目标没有链接到iOS框架。

我检查了OS X框架目标的构建设置是否有愚蠢但却一无所获。基本SDK设置为“Mac OS X 10.6”。请注意,当我创建Xcode项目时,我使用了Cocoa Framework模板,然后添加了iOS静态库目标。

还有什么可能导致OS X框架目标使用错误的SDK?

谢谢, -KIRBY

3 个答案:

答案 0 :(得分:1)

你的问题是Xcode感到困惑。选项单击Overview弹出窗口并将Active SDK重置为Base SDK。您可能会发现Mac目标设置为iOS目标之一,最终会导致您看到各种各样的欢闹

答案 1 :(得分:0)

我遇到了一些愚蠢的问题,将Mac和iPhone目标放在同一个Xcode项目文件中,就像你在问题和随附的评论中所描述的那样。我的解决方案是为Mac和iOS提供单独的Xcode项目文件。您仍然可以在项目之间共享文件,但必须保持每个项目单独更新,但这样可以减少不良行为。

答案 2 :(得分:0)

我正在做一些与你描述的非常相似的事情。我有几个私有框架,在我们的iOS应用程序和我们的OS-X应用程序之间共享。每个这样的框架都驻留在自己的项目中,有两个目标。一个Mac-OS动态框架,以及一个特殊的iOS“静态框架”,使用我们添加到Xcode的特殊模板 - 它是一个开源项目 Karl Stenerud's iOS universal iOS framework 现在我从来没有经历过你描述的愚蠢,我确信这只是你在项目/目标设置中错误删除(或添加)的东西。

我建议作为项目设置的“调试方法”是这样的。

为您打开一个漂亮的文本编辑器。 例如,转到iOS静态库的构建设置。选择“全部”和“组合”按钮。现在选择所有行和Copy(command-C)。转到文本编辑器,然后粘贴。您将对所有设置都有一个很好的文字说明。

现在在Xcode中创建一个新的模板项目,并在另一个文本文件中执行相同的操作。现在比较这些文件,看是否存在差异。

在所有3个级别上执行此操作。 1.项目级别设置 2. iOS静态lib设置 3. OS-C框架。

相关问题