我不明白这些Xcode功能之间的区别。
我正在构建和应用程序 - 但应用程序的功能正在被抽象到库中(因此它们可以作为“SDK”单独分发)。
所以我有一个库项目工作区和app项目。我可以通过“链接二进制文件库”将库项目添加到应用程序项目中。这为我提供了当前工作区中.a
库项目的列表,我可以链接到该项目。
我也可以在这里添加框架。
在“目标依赖项”位中,我可以添加的是当前项目中的其他目标。
我真正想做的是 - 我希望我的app项目在构建时构建所有其他库项目。我还想详细说明应用程序(和其他库)依赖的库。
有人可以解释一下这个区别,我正在做的是正确的方法吗?
非常感谢!
答案 0 :(得分:4)
它说here ......
- 将框架产品(位于Products文件夹中)拖动到应用程序的现有Link Binary With Libraries构建阶段 目标。这会导致应用程序链接到您的框架。
醇>
和...
- 在检查器窗口的“常规”选项卡中,将您的框架添加为应用程序的依赖项。添加此依赖项会导致Xcode 在构建应用程序目标之前构建框架目标。
醇>您在应用程序目标中建立的构建依赖项导致 在应用程序之前构建的框架。这个很重要 因为它保证了框架的内置版本 可用于链接和嵌入应用程序。因为 这种依赖关系,您可以设置Xcode项目的活动目标 到您的申请并留在那里。
所以看来你应该同时使用两者。虽然看似多余,因为如果你链接到一个框架那么它的依赖。我想你可能只想链接到一个库,而不是先建立它。虽然XCode似乎构建链接库,即使没有将它们添加到依赖项部分。也许这是计划的构建设置中“Find Implicit Dependencies”选项的结果。
答案 1 :(得分:0)
我做了类似的事情,并在最终的可执行目标中明确设置了“标题搜索路径”和“库搜索路径”。然而,这一切都取决于生成对象的位置。最初我将其设置为源树(实际上是一个名为build
的兄弟目录),但是在更改了Xcode DerivedData
目录的位置并告诉它构建到该目录之后,项目没有更长的。
最终解决方案只是删除“标头/库搜索路径”的显式设置,并正确设置目标依赖项。这导致了用于调试和存档的项目构建没有问题。