我有两个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
构建1}}配置而不是Enterprise
。我控制了两个项目,因此我可以轻松地将Enterprise
配置添加到Sub
,但我觉得必须有Xcode Build Settings的神奇咒语才能使其发挥作用。
答案 0 :(得分:0)
我通过在我的父项目中使用Xcode配置文件解决了完全相同的问题 - 通常是您的应用程序。
这是我采取的步骤:
通过New>在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)
为自定义配置编写专用配置。我创建了一个Ad Hoc配置,它复制了Release,因此我的搜索路径现在看起来像这样:
#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"
然后在应用程序的项目的“信息”选项卡中选择您的配置,使用“基本配置进行调试和发布”,然后使用特殊的配置进行自定义配置。
答案 1 :(得分:0)