【问题标题】:CocoaPods warnings with xcconfig linker flags带有 xcconfig 链接器标志的 CocoaPods 警告
【发布时间】:2014-10-21 12:45:28
【问题描述】:

我正在尝试为我的 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! pod 指令在设置 WARNING_CFLAGS 配置变量时起作用,因为在这种情况下它似乎忽略了它?

感谢大家的帮助!

【问题讨论】:

    标签: ios xcode compiler-warnings cocoapods xcconfig


    【解决方案1】:

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

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

    【讨论】:

    • 我已经设法让它工作,即使使用 -Weverything 标志,但仍然不知道为什么会这样。
    猜你喜欢
    • 1970-01-01
    • 2014-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多