2013-03-11 93 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

相關問題