2013-03-11 73 views
2

我有两个Xcode项目:SuperSubSuper有自定义配置:EnterpriseSub仅具有默认配置:DebugReleaseSuperSub有目标依赖。当我使用Enterprise配置构建Super时,Sub以其默认配置Release构建。这将产生以下层次:如何引用在Xcode中使用不同配置构建的依赖项目?

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

Clang的构建失败,因为libSub.aSub/Sub.h通常是在同一个目录中Super.app,而是在不同的目录,因为建立与Release配置,而不是EnterpriseSub。我控制这两个项目,所以我可以很容易地将Enterprise配置添加到Sub,但我觉得必须有一个神奇的咒语Xcode Build Settings来完成这项工作。

+0

您是否找到解决方案?我一直在窃听同样的问题。而不仅仅是我自己的图书馆项目。 – 2013-04-30 21:15:21

回答

0

我已经通过在父项目中使用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" 
    

然后在您的应用程序的项目的信息选项卡中选择您的配置,使用基本配置的调试和发布,然后是您的自定义配置的特殊配置。

+0

谢谢!我只希望有一个更清洁的方式。 – 2013-05-01 14:06:42

+0

不幸的是,当涉及到存档时,我认为这不会起作用! Arrg! – 2013-05-02 13:06:57

相关问题