我有一个包含多个目标的项目。有一个与项目关联的xcconfig文件和几个与目标关联的xcconfig文件。
现在我想通过CocoaPods整合第三方库。在$ pod install
之后,CocoaPods搞砸了原始项目,因为它将自己的xcconfig文件Pds.xcconfig
与原始项目的目标相关联。这完全忽略并覆盖与项目关联的原始xcconfig中定义的设置,并切换出与目标关联的原始xcconfig文件。因此,该项目最终搞砸了。
例如,Cocoapods在其Pods.xcconfig
中定义了与每个目标关联的以下内容:
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
我对每个配置都有不同的配置,例如对于Debug配置文件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 :(得分:0)
你仍然可以吃蛋糕和(部分)吃它。你的目标' xcconfig文件可以包含 cocoapods:
#include "../Pods/Pods.xcconfig"
MY_SETTING = YES
...
但是,您仍然无法使用的部分是指定已在Pods.xcconfig中设置的标志。我无法找到添加到Cocoapods已在所包含文件中设置的路径的方法,例如你想要这个:
HEADER_SEARCH_PATHS = $(HEADER_SEARCH_PATHS) MyOtherIncludes
然而,这一行只是放弃了Cocoapods标题搜索路径,只留下了MyOtherIncludes: - (
一个解决方法应该是将MyOtherIncludes移动到项目的xcconfig文件中,Cocoapods不会触摸它们。不幸的是,这对我没有用,YMMV。