CocoaPods的Pods.xcconfig与现有的冲突

时间:2013-09-25 16:03:12

标签: ios xcode macos cocoapods xcconfig

我有一个包含多个目标的项目。有一个与项目关联的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后,项目搞砸了。

那么,这是怎么回事?

1 个答案:

答案 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。