我将three20项目导入到我的项目中,当我升级到iOS 5的Xcode 4.2时,项目中出现了一堆警告。
虽然我不在意这些警告,但它们会干扰视线,容易错过真正的警告信息。有没有办法禁用这些库特定的警告呢?
我将three20项目导入到我的项目中,当我升级到iOS 5的Xcode 4.2时,项目中出现了一堆警告。
虽然我不在意这些警告,但它们会干扰视线,容易错过真正的警告信息。有没有办法禁用这些库特定的警告呢?
如果你的第三方库被添加为单独的目标,你可以为该目标勾选Inhibit all warnings
以关闭所有警告。
如果你的库被作为纯源文件添加到当前目标中,你可以为每个单独的源文件设置编译器标志-w
来静默所有警告。你需要前往目标配置的Build phases
菜单,并在Compile Sources
章节中双击每个文件,输入-w
标志。
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
inhibit_all_warnings!
,如下所示:https://dev59.com/rmYs5IYBdhLWcg3wBvRp - pseudosudo如果警告来自于包含的库或框架头文件,您可以像这样包装包含语句:
#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
如果警告来自于使用Carthage添加的框架(例如Rollbar):
Carthage/Build/<platform>
中拖动已构建的框架到 Xcode,将其添加到刚创建的虚拟/包装框架(RollbarWrapper)中。
前往虚拟/包装框架(RollbarWrapper)的构建设置,并将“禁止所有警告”设置为是
接下来,将框架(Rollbar)添加到您的应用程序目标的“框架、库和嵌入式内容”部分,并设置为不嵌入
copy-frameworks
脚本以复制Rollbar框架)。
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Weverything"
#include "someHeader.h"
#include "someOtherHeader.h"
#pragma clang diagnostic pop
(我看到一些旧评论说,在旧版本的Xcode上,-Weverything
不起作用,但至少在15上是可以的。)这比在Clang的19457个标志列表中查找单个警告标志要方便得多。