我有一个有几个目标的项目。有一个与项目相关联的xcconfig文件和几个与目标关联的xcconfig文件。
现在,我想通过CocoaPods合并一个第三方库。在$ pod install之后,CocoaPods完成了原来的项目,因为它将自己的xcconfig文件Pds.xcconfig与原始项目的目标关联起来。这完全忽略和覆盖与项目关联的原始xcconfig中定义的设置,并切换出与目标关联的原始xcconfig文件。因此,这个项目最终失败了。
例如,Cocoapods在其Pods.xcconfig中定义了与每个目标相关联的以下内容:
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
我对每种配置都有不同的信任,例如调试配置文件osx.debug.xcconfig定义的配置文件。
GCC_PREPROCESSOR_DEFINITIONS = DEBUG=1 DEBUG_LOG=2 __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES=0
解决这些冲突的合理和可行的方法是什么?
编辑:
我在CocoaPods上搜索了GitHub的问题清单。似乎存在大量与xcconfig文件相关的问题,其中一些问题已经存在了两年以上。他们被讨论,然后结束,但是--正如我所想到的--这个问题尚未得到解决。
IMHO,这是一个基本的基本问题:有一个项目使用xcconfig文件。然后,人们希望通过CocoaPods包括一个第三方库。在执行pod install之后,项目就被搞砸了。
这是怎么回事?
发布于 2014-03-17 14:15:20
你还可以吃你的蛋糕(部分)。目标的xcconfig文件可以包括cocoapods 1:
#include "../Pods/Pods.xcconfig"
MY_SETTING = YES
...但是,当您想要指定Pods.xcconfig中已经设置的标志时,您仍然不能吃。我找不到一种方法来添加Cocoapods已经在包含的文件中设置的路径,例如,您可能希望这样做:
HEADER_SEARCH_PATHS = $(HEADER_SEARCH_PATHS) MyOtherIncludes然而,这一行只是简单地删除Cocoapods头搜索路径,只留下MyOtherIncludes :-(
解决这一问题的一个方法应该是将MyOtherIncludes移动到项目的xcconfig文件,Cocoapods不碰这个文件。不幸的是,这对我没用,YMMV。
https://stackoverflow.com/questions/19009834
复制相似问题