编辑 Xcode xcconfig 文件和 Cocoapods

Posted

技术标签:

【中文标题】编辑 Xcode xcconfig 文件和 Cocoapods【英文标题】:Edit Xcode xcconfig file and Cocoapods 【发布时间】:2014-06-16 04:17:36 【问题描述】:

我想编辑 xcconfig 文件,但不幸的是 Xcode 只允许每个配置 1 个 xcconfig 文件,即 Pods.xcconfig 因为我正在使用Cocoapods

那么我怎样才能在不伤害 Cocoapods 的情况下编辑 xcconfig

我能想到几种方法

    让 Xcode 使用多个 xcconfig 文件 使用我自己的包含 Pods.xcconfig 文件的 xcconfig 文件

那么如何处理呢?

【问题讨论】:

cocoapods 配置文件不是在项目级别吗?如果是这样,那只是您的目标级别。 @***foe 按目标级别,您的意思是转到目标构建设置面板并手动指定设置?我不想那样 你不想这样吗?这是为什么呢? @***foe 我怕合并冲突,所以使用 xcconfig 我不必手动进入构建设置面板 @***foe 在pod install 命令期间 Pods.xcconfig 自动放置在目标配置中。如果您更改它 - 您还应该在每个 pod 更新后手动更改它。那么,如何避免它的问题。 【参考方案1】:

现在(XCode 9.x、CocoaPods 1.4.0)您只需添加

#include "Pods/Target Support Files/Pods-MyApp/Pods-Pods-MyApp.debug.xcconfig"

到您的自定义 xcconfig。 pod install 会抱怨,但会自动做正确的事(什么都不做);它甚至会告诉我们完全按照上述操作。


不再需要阻止集成(这也会使我们没有工作空间)。 FWIW,选项--no-integrate 不再存在;如果我们想要它,我们会将:integrate_targets => false 作为选项添加到 Podfile 中的install!

【讨论】:

其实这似乎是不必要的:如果你为project设置了自己的xcconfig文件,而为每个target保留了CocoaPods的xcconfig,然后两个配置文件都被使用了,一切都很好。 @Yonat 听起来很合理。我的用例(上面没有说明)是使用 SwiftPM 生成的 XC 项目以自动方式使用 pod;我真的不想手动触摸项目或工作区。而且因为我可以告诉 SwiftPM 只能“使用这个配置!”没有更多细节,我认为没有运气。 @KarenAnne 我不再在 Mac 上工作/使用 Mac 了(谢天谢地!)所以我无法检查。我建议你打开一个新问题。祝你好运!【参考方案2】:

这是CocoaPods Tracker 中的一个问题。 此处描述了一种解决方法:#1736。

正如 kylef(CocoaPods 存储库的所有者)所说:

手动解决方法:使用 pod install --no-integrate,然后从您的自定义 xcconfig 文件中添加 #include "Pods/Pods-GCE.xcconfig"

我不认为有一个明确的解决方案可以自动修复它,但如果可可豆荚检测到这一点并告诉用户可能会很好。我花了一段时间才弄清楚在我执行 pod install 之后发生了什么,并且项目 xcconfig 文件没有被包含在内。

【讨论】:

这几乎成功了,但似乎 CococaPods 已经改变了。我不得不#include "Pods/Target Support Files/Pods/Pods.debug.xcconfig" 而不是 GCE 路径。同样,在我的AppName.release.xcconfig 中,我做了#include "Pods/Target Support Files/Pods/Pods.release.xcconfig" 此答案已过时,必须避免,请查看 Raphael 的答案以获得更准确的答案。

以上是关于编辑 Xcode xcconfig 文件和 Cocoapods的主要内容,如果未能解决你的问题,请参考以下文章

XCConfig 在 Xcode 重新启动之前不会刷新

有没有办法在 Xcode 9 中更改每个方案的 .xcconfig 文件?

Xcode使用xcconfig文件配置环境

xcconfigs:如何为一个目标设置多个配置

`xcconfig` 文件中的条件用户定义变量

目标 ... 覆盖在 `Pods/Pods.xcconfig 中定义的 `OTHER_LDFLAGS` 构建设置