【问题标题】:Xcode 12, How to suppress "Double-quoted include in framework header" warnings throughout entire projectXcode 12,如何在整个项目中抑制“框架标头中的双引号包含”警告
【发布时间】:2020-09-17 23:24:32
【问题描述】:

使用 Xcode 12 有一个新的默认警告,它会在您 #import 或 #include 使用 "quotes.h" 而不是 <brackets.h> 的任何位置抛出警告。

警告:“框架标头中包含双引号”

如何为整个项目关闭此警告?

【问题讨论】:

    标签: objective-c swift xcode ios14 xcode12


    【解决方案1】:

    我认为更简单的方法是进入项目的构建设置,只需将选项 Quoted Include In Framework Header 设置为 No

    【讨论】:

    • 更好!谢谢
    • 是的,这是我的解决方案! :) 即使每次执行 pod install 在 pod 内,project update 都会建议更新。
    • 我是一名资深的 linux/java/javascript 开发人员,几乎所有事情都在命令行中完成。自从开发跨平台以来,我发现 Apple 的做事方式非常令人沮丧,并且在我的所有部署中都使用了 fastlane。有人可以向我解释如何在没有 XCode GUI 的情况下执行此操作吗?我有一个 build.xcconfig 文件,但不知道如何在其中进行设置。另外,我确实尝试在 XCode 中打开我的项目,但无论如何我都没有看到这个设置。干杯。
    • 更新:我确实找到了设置,但它在全部 - 组合(不是基本 - 组合)下,如上面的屏幕截图所示。它设置为“否”,但我的项目中的每个 Pod 都收到此警告,它淹没了我的输出,所以我找不到我遇到的实际问题。叹息。
    • @crowmagnumb 也许试试我原来的解决方案,看看它是否也适用于你的 pod:stackoverflow.com/a/63947318/2057171
    【解决方案2】:

    您可以通过导航到项目的“构建设置”,找到“其他链接器标志”字段并添加以下标志来禁用整个项目的这些警告:

    -Wno-quoted-include-in-framework-header

    【讨论】:

    • 注意:如果您右键单击警告并选择“在日志中显示”引发警告,您将看到-Waaa-bbb-ccc 格式的警告,您可以将任何警告更改为-Wno-aaa-bbb-ccc 并添加为链接器标志以抑制项目范围。
    • 在 Xcode 12(最新版本)上不适合我。 -Wno-quoted-include-in-framework-header -Wquoted-include-in-framework-header
    • @arcangel06 您只能使用以-Wno- 开头的那个;有时使用链接器标志我必须退出 xCode 并重新启动它们才能生效,但大多数时候它可以在下一个版本中工作。
    • 遗憾的是,它不适用于 FaceBook SDK 包括
    • @JeffB6688 确保您清理项目,退出并重新启动 xcode 并等待一分钟,让优化器重新扫描所有文件。 Facebook SDK 可能非常大,在后台任务中刷新需要一点时间
    【解决方案3】:

    看起来这个issue 是作为Cocoapods 的一部分修复的1.10.1在撰写本文时尚未正式发布)。不过,在 1.10.1 正式可用之前,您可以暂时使用 Cocoapods 版本 1.10.0.rc.1

    gem install cocoapods -v '1.10.0.rc.1'
    

    另一种选择是更新您的 Podfile(添加以下代码)以禁用项目中所有 pod 的警告标志 CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER 设置。

    post_install do |installer|
      installer.generated_projects.each do |project|
        project.targets.each do |target|
          target.build_configurations.each do |config|
              config.build_settings['CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER'] = 'NO'
          end
        end
      end
    end
    

    【讨论】:

    • 我做到了,pod deintegrate 和 pod install
    • 遗憾的是,它不适用于 FaceBook SDK 包括
    猜你喜欢
    • 2021-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-02
    相关资源
    最近更新 更多