xcode - 我应该如何管理 Xcode 工作区中项目之间的依赖关系?

标签 xcode xcode4 build-dependencies

我正在开发一个 iOS 应用程序项目,并将 json-framework 项目添加到工作区。左侧的项目导航器显示这两个项目,构建方案选择器也显示这两个项目的方案。现在我想添加 json-framework 项目中的 libjson.a 目标作为对其他项目中 iOS 应用程序目标的依赖项。预期的结果是,每当构建应用程序目标时,它都会构建(如果需要)库目标并将应用程序目标链接到它。以下是我尝试过的方法:

  • 将两者构建为同一方案的一部分。我尝试的方法是编辑我的应用程序的方案,将“libjson.a”添加到方案的“构建”部分,并顺便检查“查找隐式依赖项”。然后,我转到应用程序目标的目标编辑器,并在“构建阶段”->“将二进制文件与库链接”中,从工作区库列表中选择“libjson.a”。 当我随后尝试构建该方案时,我看到它构建了库目标,但构建应用程序目标失败,并出现链接器错误“未找到 -ljson 的库” - 这表明它实际上尚未发现该库已构建。事实上,在项目导航器中,该库的应用程序项目下的条目仍然是红色,表明该文件不存在。

  • 将 json 目标添加为显式依赖项。为了尝试这个,我不修改构建方案,而是转到我的应用程序目标的目标编辑器,然后单击“目标依赖项”下的添加按钮。工作区中没有显示其他项目的目标,因此这是不可能的。

  • 将 JSON 项目拖到另一个项目中,然后将目标添加为依赖项。这就是我在 Xcode 3 中所做的。在项目导航器中,我抓取库项目并将其拖动到应用程序项目上。这将打开通常的“添加文件” Pane ,我只需单击“完成”即可将其关闭。 现在项目导航器中有两个库项目条目:一个位于顶层,一个位于应用程序项目下。我现在可以使用目标编辑器将库目标添加为应用程序目标的依赖项,并且可以在链接库阶段链接它而不会出现错误。但它看起来很糟糕:导航器中同一项目有多个条目。有其他方法可以做到这一点吗?

在同一工作区的不同项目中连接这些目标的“Xcode 4-ish”方式应该被视为什么?如果同一工作区中的多个项目实际上无法相互交互,那就显得缺乏。 谢谢, 格雷厄姆。

最佳答案

我刚刚设置了一个测试项目,就像您在版本 3 中所描述的那样,通过创建一个新工作区并将两个 Xcode 项目拖入其中,如图所示嵌套。

如果已有同级项目,您可以将其删除。

据我所知,在此基础上进行构建就可以了。

Scheme Settings Project Layout

我想如果您有两个项目,就会存在内部路径困惑,并且我倾向于摆弄“ View ”->“实用程序”->“文件检查器”中的位置设置,看看会产生什么效果。

enter image description here enter image description here

要尝试的另一件事是在 Xcode“首选项...”->“源树”中设置路径并以这种方式引用它们,如下所述:Easy, Modular Code Sharing Across iPhone Apps: Static Libraries and Cross-Project References

HTH。安迪·W.

关于xcode - 我应该如何管理 Xcode 工作区中项目之间的依赖关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5483909/

相关文章:

ios - 无法以编程方式更改 UITextView 框架大小

c++ - Xcode 4 : why "Continue to current line" is grayed out?

c++ - 如何引入标准库的意外构建依赖项

ios - Interface Builder 无法设置可访问性特征(Xcode 8)

ios - Xcode 6 iPair Air 无法在设备上运行应用程序(操作系统版本)

ios - 是否可以将回调转换为异步 block ?

xcode - 在 XCode 中禁用自动换行

c++ - 如何强制INTERFACE库上的依赖项使用C++ 11或更高版本?

grails 1.3.9 依赖问题 : loading mail-1. 4.3.jar 作为插件?

ios - 如何为新项目指定默认的最低 iOS 版本?