我有两个项目的Xcode: Super
和Sub
。 Super
有一个自定义的配置: Enterprise
。 Sub
只有默认配置: Debug
和Release
。 Super
对靶依赖Sub
。 当我建Super
与Enterprise
的配置, Sub
构建其默认配置: Release
。 这将产生以下层次:
Build
|-Products
|-Enterprise-iphoneos
|-Super.app
|-Release-iphoneos
|-libSub.a
|-Sub
|-Sub.h
Clang的构建失败,因为libSub.a
和Sub/Sub.h
通常是在同一个目录中Super.app
,而是在不同的目录,因为Sub
与内置Release
的配置,而不是Enterprise
。 我控制这两个项目,所以我可以轻松地添加一个Enterprise
配置Sub
,但我觉得必须有一个神奇的咒语的Xcode构建设置 ,使这项工作。
通常你的应用程序 - 我已经在我的父项目使用Xcode的配置文件解决了完全相同的问题。
这是我采取的步骤:
通过创建新>其它>配置文件Xcode的基本配置文件。
写你的基地xcconfig
文件,我的看起来有点像这样:
/// Configure Search Paths HEADER_SEARCH_PATHS = "$(BUILT_PRODUCTS_DIR)/include" "$(BUILT_PRODUCTS_DIR)/usr/local/include" LIBRARY_SEARCH_PATHS = "$(SRCROOT)/../Externals/Libraries/GoogleAnalytics" /// Linker flags OTHER_LDFLAGS=-ObjC -all_load
这里要注意的一点是, $(BUILT_PRODUCTS_DIR)
是的串联:
$(BUILD_DIR)/$(CONFIGURATION)-$(PLATFORM_NAME)
写一个自定义配置一个专门的配置。 我创建了一个特设配置,其复制版本,因此我的搜索路径现在这个样子:
#include "BaseConfig.xcconfig" /// Ad Hoc search paths HEADER_SEARCH_PATHS = "$(BUILD_DIR)/Release-$(PLATFORM_NAME)/include" "$(BUILD_DIR)/Release-$(PLATFORM_NAME)/usr/local/include" LIBRARY_SEARCH_PATHS = "$(BUILD_DIR)/Release-$(PLATFORM_NAME)" "$(SRCROOT)/../Externals/Sources/GoogleAnalytics"
然后在你的应用程序的项目的信息选项卡中选择您的配置,以用于调试和发布的基本配置,然后特别适合您的自定义配置。
文章来源: How do I reference a dependent project built with a different configuration in Xcode?