ios - 带有 xcconfig 链接器标志的 CocoaPods 警告

标签 ios xcode compiler-warnings cocoapods xcconfig

我正在尝试为我的 iOS 应用程序构建一个良好的架构,但我的 xcconfig 配置遇到了问题。我有几个 CocoaPods,它们包含警告是很自然的。我一直在用 inhibit_all_warnings! 让那些人沉默CocoaPods 集成之上的指令。所以我的 Podfile 看起来像这样:

platform :ios, '7.0'

inhibit_all_warnings!

source 'https://github.com/CocoaPods/Specs.git'

pod 'AFNetworking', '~> 2.x'
...

这实际上有效,使用此配置构建项目时不会显示任何警告。

但是我在构建应用程序时试图强制一个非常严格的环境,所以我创建了几个 .xcconfig 文件,它们强制警告错误并启用几乎所有可能的警告。这是 xcconfig 文件中实际执行此操作的部分:
GCC_TREAT_WARNINGS_AS_ERRORS = YES;
WARNING_CFLAGS = -Weverything -Wno-objc-missing-property-synthesis -Wno-unused-macros;

这两行都正常工作,但问题似乎是 CocoaPod 库的警告也被视为错误。禁用 GCC_TREAT_WARNINGS_AS_ERRORS将使项目再次编译,但警告从 CocoaPods 返回。

所以我的问题是:

我将如何正确设置我的 .xcconfig 文件,WARNING_CFLAGS 将仅用于项目文件,而不是库文件?

如何制作inhibit_all_warnings! pod 指令在设置 WARNING_CFLAGS 配置变量时起作用,因为在这种情况下它似乎忽略了它?

感谢大家的帮助!

最佳答案

这种“渗漏”的警告可能源于您在构建环境中使用 -Weverything 标志。我使用了一个类似的并且遇到了同样的问题,直到我今天偶然发现 this回答一个相关的问题。

长话短说:写这篇文章的clang开发人员强烈反对使用-Weverything,因为它甚至包含有错误或仍在开发中的警告。如果您需要更严格的构建环境,最好使用 -Wall、-Wextra 和可选的 -Wconversion。然后 Cocoapods 将正确响应并隐藏 pod 的警告。

关于ios - 带有 xcconfig 链接器标志的 CocoaPods 警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26487093/

相关文章:

ios - 委托(delegate)函数未在按钮单击时被调用

javascript - IOS 上的 HTML5 音频 : how can currentTime be less than initial value?

objective-c - Xcode - 在文本字段上设置焦点,becomeFirstResponder 是不够的

iphone - 目标 IOS 3.1 的编译错误

java - 如何确定哪个 Xlint 选项对应于编译器警告?

objective-c - 如何在宏中使用 block

ios - 何时使用 dequeueReusableCellWithIdentifier 与 dequeueReusableCellWithIdentifier : forIndexPath

objective-c - 如何禁用 NSMenu 中某些 View 的项目?

iphone - newViewController 始终带有两个 Nib (iPhone 和 iPad)

c++ - 如何纠正对运算符优先级的错误假设以消除代码的副作用?