Xcode 目标依赖项与链接二进制库

Xcode 目标依赖项与链接二进制库,xcode,Xcode,我不明白这些Xcode特性之间的区别 我正在构建和应用程序-但是应用程序的功能被抽象到库中(因此它们可以作为“SDK”单独分发) 所以我有一个图书馆项目和应用程序项目的工作区。我可以通过“使用库链接二进制文件”将库项目添加到应用程序项目中。这为我提供了当前工作区中可链接到的.a库项目列表 我也可以在这里添加框架 在“目标依赖项”中,我可以添加的是当前项目中的其他目标 我真正想做的是两者兼而有之——我希望我的应用程序项目在构建时能够构建所有其他库项目。我还想详细说明应用程序(和其他库)所依赖的库

我不明白这些Xcode特性之间的区别

我正在构建和应用程序-但是应用程序的功能被抽象到库中(因此它们可以作为“SDK”单独分发)

所以我有一个图书馆项目和应用程序项目的工作区。我可以通过“使用库链接二进制文件”将库项目添加到应用程序项目中。这为我提供了当前工作区中可链接到的
.a
库项目列表

我也可以在这里添加框架

在“目标依赖项”中,我可以添加的是当前项目中的其他目标

我真正想做的是两者兼而有之——我希望我的应用程序项目在构建时能够构建所有其他库项目。我还想详细说明应用程序(和其他库)所依赖的库

那么,有人能解释一下区别吗?我现在所做的是否是正确的方法


非常感谢

我做了类似的事情,并在最终可执行目标中显式设置了“头搜索路径”和“库搜索路径”。然而,这一切都取决于对象生成的位置。最初我将其设置在源代码树中(实际上是一个名为
build
的同级目录),但是在更改Xcode
DerivedData
目录的位置并告诉它构建到该目录中后,项目不再构建

最终的解决方案只是删除“header/library搜索路径”的显式设置,并正确设置目标依赖项。这导致了项目构建的调试和归档没有问题。

它说

  • 将框架产品(位于Products文件夹中)拖动到应用程序的现有链接二进制库构建阶段 目标。这会导致应用程序链接到您的框架
  • 而且

  • 在inspector窗口的General选项卡中,将框架添加为应用程序的依赖项。添加此依赖项会导致Xcode 在构建应用程序目标之前构建框架目标
  • 在应用程序目标中建立的生成依赖关系会导致 在应用程序之前要构建的框架。这很重要 因为它保证了框架的构建版本将 可用于链接并嵌入到应用程序中。因为 通过此依赖关系,您可以设置Xcode项目的活动目标 把它放在那里


    看来你应该两者都用。但这似乎是多余的,因为如果您链接到一个框架,那么它就是一个依赖项。我想您可能只想链接到一个库,而不是首先构建它。尽管XCode似乎构建了链接库,甚至没有将它们添加到依赖项部分。也许这是方案构建设置中“查找隐式依赖项”选项的结果。

    但是,我从来没有弄明白这一点-如果您在同一工作区中有单独的项目,并且您的应用程序使用lib文件,则每次都会自动构建。我每次都会遇到一些问题,不是从头开始构建,但如果我在库项目中做了任何更改,我会先清理然后构建。这表明你需要这两个方面。但这似乎是多余的。如果你链接到一个二进制文件,那么这肯定意味着它依赖于它吗?对于任何访问这个问题的人,这里有一个例子。