我如何引用在Xcode中不同的配置建立一个相关项目?(How do I reference a de

2019-08-17 11:29发布

我有两个项目的Xcode: SuperSubSuper有一个自定义的配置: EnterpriseSub只有默认配置: DebugReleaseSuper对靶依赖Sub 。 当我建SuperEnterprise的配置, Sub构建其默认配置: Release 。 这将产生以下层次:

Build
|-Products
  |-Enterprise-iphoneos
    |-Super.app
  |-Release-iphoneos
    |-libSub.a
    |-Sub
      |-Sub.h

Clang的构建失败,因为libSub.aSub/Sub.h通常是在同一个目录中Super.app ,而是在不同的目录,因为Sub与内置Release的配置,而不是Enterprise 。 我控制这两个项目,所以我可以轻松地添加一个Enterprise配置Sub ,但我觉得必须有一个神奇的咒语的Xcode构建设置 ,使这项工作。

Answer 1:

通常你的应用程序 - 我已经在我的父项目使用Xcode的配置文件解决了完全相同的问题。

这是我采取的步骤:

  1. 通过创建新>其它>配置文件Xcode的基本配置文件。

  2. 写你的基地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 
  3. 这里要注意的一点是, $(BUILT_PRODUCTS_DIR)是的串联:

     $(BUILD_DIR)/$(CONFIGURATION)-$(PLATFORM_NAME) 
  4. 写一个自定义配置一个专门的配置。 我创建了一个特设配置,其复制版本,因此我的搜索路径现在这个样子:

     #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?