2013-09-25 68 views
7

我有一個項目,幾個目標。有一個與項目關聯的xcconfig文件和與目標關聯的幾個xcconfig文件。的CocoaPods'與現有Pods.xcconfig衝突

現在我想通過的CocoaPods納入第三方庫。在$ pod install之後,CocoaPods擰緊了原來的項目,因爲它將自己的xcconfig文件Pds.xcconfig關聯到原始項目的目標。這會完全忽略並覆蓋與項目關聯的原始xcconfig中定義的設置,並切換與目標關聯的原始xcconfig文件。因此,該項目結束了擰。

例如,的CocoaPods限定在其Pods.xcconfig其被關聯到每個目標以下:

GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1

我對每個配置不同CONFIGS,例如用於調試配置文件osx.debug.xcconfig定義

GCC_PREPROCESSOR_DEFINITIONS = DEBUG=1 DEBUG_LOG=2 __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES=0

什麼是解決這種衝突合理和可行的方法?

編輯:

我已經通過在GitHub上的CocoaPods問題清單搜索。似乎有大量與xcconfig文件相關的問題,其中一些問題已超過2年。他們被討論,然後關閉,但是 - 就像我想到的那樣 - 這個問題還沒有解決。

恕我直言,這是一個基本的和基本的問題:有一種使用xcconfig文件的項目。然後,想要通過CocoaPods包含第三方庫。在執行pod install後,項目被搞砸了。

那麼,這是怎麼回事這個?

回答

0

你仍然可以有你的蛋糕,(部分)吃。你的目標的xcconfig文件可以包括的一個的CocoaPods:

#include "../Pods/Pods.xcconfig" 
MY_SETTING = YES 
... 

不過,你仍然不能吃的部分是,當你想指定Pods.xcconfig已經設置的標誌。我無法找到添加到Cocoapods已經在包含文件中設置的路徑的方法,例如你想要這樣的:

HEADER_SEARCH_PATHS = $(HEADER_SEARCH_PATHS) MyOtherIncludes 

但是這條線只是丟棄的CocoaPods頭搜索路徑,只留下MyOtherIncludes :-(此

一個解決辦法應該是MyOtherIncludes移動到該項目的xcconfig文件,該文件不幸的是,這不適用於我,YMMV

+0

不幸的是,無法擴展或修改的構建設置是必不可少的:GCC_PREPROCESSOR_DEFINITIONS,HEADER_SEARCH_PATHS,OTHER_CFLAGS和OTHER_LDFLAGS。罪魁禍首也可能是Xcode因爲xcconfig文件不能處理這樣的聲明:'HEADER_SEARCH_PATHS = $(HEADER _SEARCH_PATHS)MyOtherIncludes'。爲了使這項工作可能會破壞當前行爲,Xcode的xcconfig文件設置如何修改底層構建設置。 – CouchDeveloper