我正在尝试清理我的一些项目,令我困惑的一件事是如何处理我添加为“项目依赖项”的静态库中的头文件(通过添加项目文件本身) .基本结构是这样的:
MyProject.xcodeproj
Contrib
thirdPartyLibrary.xcodeproj
Classes
MyClass1.h
MyClass1.m
...
现在,所有依赖项都已正确设置和构建,但我如何为“thirdPartyLibrary.xcodeproj”指定公共(public) header ,以便它们在构建 MyProject.xcodeproj 时位于搜索路径上。现在,我已经在 thirdPartyLibrary.xcodeproj 中硬编码了 include 目录,但显然这是笨拙且不可移植的。我假设,因为 header 是公开的并且已经构建到 ~/Library 中的某个临时位置(.a 文件也在那里),所以有一种巧妙的方法来引用这个目录。只是……怎么办?一个小时的谷歌搜索结果一片空白,非常感谢您的帮助!
最佳答案
如果我没理解错的话,我相信您想在项目build设置中的 HEADER_SEARCH_PATHS 中添加一个包含 $(BUILT_PRODUCTS_DIR) 的路径。
例如,我采用了一个现有的 iOS 项目,其中包含一个静态库(仅按照您描述的方式包含),并将库头文件设置为公共(public)。我还注意到该项目的 PUBLIC_HEADERS_FOLDER_PATH 设置为“/usr/local/include”,当父项目构建依赖项目时,这些文件被复制到 $(BUILT_PRODUCTS_DIR)/usr/local/include。因此,解决方案是在我项目的build设置中将 $(BUILT_PRODUCTS_DIR)/usr/local/include 添加到 HEADER_SEARCH_PATHS。
HEADER_SEARCH_PATHS = $(BUILT_PRODUCTS_DIR)/usr/local/include
您的情况可能略有不同,但您寻找的确切路径可能可以在 Xcode's build settings 中找到.此外,您可能会发现向目标添加运行脚本构建阶段并在构建时记录各种设置的值很有帮助,例如:
echo "BUILT_PRODUCTS_DIR " $BUILT_PRODUCTS_DIR
echo "HEADER_SEARCH_PATHS " $HEADER_SEARCH_PATHS
echo "PUBLIC_HEADERS_FOLDER_PATH " $PUBLIC_HEADERS_FOLDER_PATH
.
.
.
etc.
关于objective-c - 依赖项中公共(public) header 的 Xcode 搜索路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5059506/