2013-09-25 35 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