17

我知道,这已被问过几次,但主要是针对 Xcode 3.x。对于 iPad,我有两个项目都生活在一个公共工作区中

  • Foo,一个基于视图的应用程序和
  • Foolib,一个静态的 Cocoa-Touch 库

前者取决于后者。我似乎无法弄清楚如何添加该依赖项。文档中没有很好地解释,所以我尝试了以下方法:

  1. 点击左侧导航区的Foo项目,
  2. 在顶部选择 Build Phases 并展开 Target Dependencies 部分
  3. 单击加号按钮,但结果列表为空。

我还尝试将 .a 文件拖放到该部分,但收效甚微。此外,文档指出

如果工作区中一个项目的构建产品依赖于工作区中另一个项目的构建产品(例如,如果一个项目构建了另一个项目使用的库),Xcode 会发现这种隐式依赖关系并以正确的顺序构建.

我想知道 Xcode 是如何发现这些依赖关系的。Apple 是不是说我根本不需要添加这个目标依赖项?但是 Xcode 怎么会发现其中一个正在使用另一个呢?

最后但并非最不重要的一点是,我需要以某种方式将 .h 文件从 Foolib 传递到 Foo。推荐的方法是什么?显然,我不想只是复制它们。框架包含头文件,但是人们在使用他们自己并行开发的静态库时通常会做什么。

朝正确方向轻推将不胜感激。谢谢你。

4

1 回答 1

15

一般来说,Xcode 4 似乎会自动发现依赖关系,正如 Edit Scheme 表所暗示的那样。其他开发人员提到依赖项不会自动发现,需要明确列出它们:

因此,编辑方案 -> 构建 -> 从您的工作区添加目标。

就静态库头文件而言,Xcode 4 似乎存在问题,至少在代码完成和语法高亮方面是这样。我可以让静态库中的类正常工作的唯一方法是将有问题的头文件的副本拖到主项目中的组文件夹中的某个位置。请注意,您应该取消选中 Add to Target... 这会处理语法突出显示和代码完成。其余的应该通过给它正确的标题搜索路径来处理。这将是 User Header Search Paths = $(BUILT_PRODUCTS_DIR) - 取决于您如何设置位置首选项。

见:这个链接

于 2011-05-13T04:11:26.440 回答