Xcode 12,如何在整个项目中抑制“双引号包含在框架标题中”警告

Alb*_*haw 12 xcode objective-c swift ios14 xcode12

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

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

你如何关闭整个项目的这个警告?

Sil*_*las 13

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

在此处输入图片说明

  • 更新:我确实找到了该设置,但它位于“全部 - 组合”(而不是“基本 - 组合”)下,如上面的屏幕截图所示。它设置为“否”,但我项目中的每个 Pod 都会收到此警告,它淹没了我的输出,因此我无法找到我遇到的实际问题。叹。 (2认同)

Alb*_*haw 7

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

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

  • 注意:当抛出警告时,如果您右键单击警告并选择“在日志中显示”,您将看到“-Waaa-bbb-ccc”格式的警告,对于任何警告,您可以将其更改为“-Wno” -aaa-bbb-ccc` 并添加为链接器标志以抑制项目范围。 (2认同)

iHS*_*iHS 5

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

gem install cocoapods -v '1.10.0.rc.1'
Run Code Online (Sandbox Code Playgroud)

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

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
Run Code Online (Sandbox Code Playgroud)