从框架禁用 Xcode 中的警告

问题描述 投票:0回答:5

我已经将 Three20 项目导入到我的项目中,当我使用 iOS 5 升级到 Xcode 4.2 时,项目中出现了一堆警告。

我不关心它们,但它们会产生很大的噪音,而且现在很容易错过我项目中的任何真正的警告。有没有办法禁用这些特定库的警告?

xcode xcode4.2 compiler-warnings suppress-warnings
5个回答
162
投票
  1. 如果您的第三方库被添加为单独的目标,您可以选中该特定目标的

    Inhibit all warnings
    以关闭所有警告。

  2. 如果您的库作为纯源文件添加到当前目标,您可以为各个源设置

    -w
    编译器标志以消除其中的所有警告。您必须转到目标配置的
    Build phases
    菜单,并通过双击每个文件末尾输入
    Compile Sources
    标志,为
    -w
    部分中的每个源文件设置此标志。 enter image description here


19
投票

如果您正在使用 pod,您可以将其添加到 podfile 以防止记录警告:

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = "YES"
    end
  end
end

8
投票

如果警告来自包含的库或框架头文件,您可以像这样包装包含语句:

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wnullability-completeness"
#import <FBSDKCoreKit/FBSDKCoreKit.h>
#import <FBSDKShareKit/FBSDKShareKit.h>
#pragma clang diagnostic pop

将警告标志放在上面的第二行。您可以在此处查找警告标志:https://clang.llvm.org/docs/DiagnosticsReference.html


0
投票

如果警告来自迦太基添加的框架(对我来说是 Rollbar):

  1. 将新的框架目标(即 RollbarWrapper)添加到您的项目中并将其嵌入到您的应用程序目标中

  1. 将构建的框架从
    Carthage/Build/<platform>
    拖到Xcode中,将其添加到您刚刚创建的虚拟/包装框架(RollbarWrapper)

  1. 确保框架 (Rollbar) 已添加到虚拟/包装框架 (RollbarWrapper) 目标的 Frameworks and Libraries 部分,并设置为 Do Not Embed

  1. 转到虚拟/包装框架(RollbarWrapper)的构建设置并将“禁止所有警告”设置为

  2. 接下来,将框架(Rollbar)添加到应用程序目标的框架、库和嵌入内容部分,并设置为“不嵌入”

  1. 最后,对于应用程序目标,执行正常的 Carthage 设置(即创建一个新的运行脚本阶段来执行
    copy-frameworks
    脚本以复制 Rollbar 框架)


0
投票

如果您使用第三方静态库 (

libSomething.a
) 并从该库导入标头,这可以消除 Xcode 15 中的所有警告:

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Weverything"
#include "someHeader.h"
#include "someOtherHeader.h"
#pragma clang diagnostic pop

(我看到一些旧评论说

-Weverything
不适用于较旧的 Xcode 版本,但至少适用于 15 版。)这比在 Clang 的 19,457 个标志列表中查找各个警告标志方便得多。

© www.soinside.com 2019 - 2024. All rights reserved.