9

我有一个有几个目标的项目。有一个与项目关联的 xcconfig 文件和几个与目标关联的 xcconfig 文件。

现在我想通过 CocoaPods 合并一个第三方库。在$ pod installCocoaPods 搞砸了原始项目之后,因为它将自己的 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,项目搞砸了。

那么,这是怎么回事?

4

1 回答 1

2

你仍然可以吃蛋糕并(部分)吃掉它。您的目标的 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。

于 2014-03-17T14:15:20.907 回答