我正在尝试为我的 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/