使用xcconfig链接器标志的CocoaPods警告

时间:2014-10-21 12:45:28

标签: ios xcode compiler-warnings cocoapods xcconfig

我正在尝试为我的iOS应用程序构建一个好的架构,我遇到了xcconfig配置问题。我有几个CocoaPods,它们包含警告是很自然的。我一直在CocoaPods集成之上使用inhibit_all_warnings!指令来沉默那些。所以我的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!设置WARNING_CFLAGS配置变量时,pod指令工作,因为在这种情况下似乎忽略了它?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

警告的“漏掉”可能源于您在构建环境中使用-Weverything标志。我使用了类似的问题并遇到了同样的问题,直到我今天在this回答相关问题时遇到了问题。

长话短说:clang开发者撰写文章时强烈反对使用-Weverything,因为它甚至包含有缺陷或仍在开发中的警告。如果您需要更严格的构建环境,请首选使用-Wall,-Wextra和可选的-Wconversion。然后Cocoapods会正确响应并隐藏来自pod的警告。