我已经将 Three20 项目导入到我的项目中,当我使用 iOS 5 升级到 Xcode 4.2 时,项目中出现了一堆警告。
我不关心它们,但它们会产生很大的噪音,而且现在很容易错过我项目中的任何真正的警告。有没有办法禁用这些特定库的警告?
如果您的第三方库被添加为单独的目标,您可以选中该特定目标的
Inhibit all warnings
以关闭所有警告。如果您的库作为纯源文件添加到当前目标,您可以为各个源设置
-w
编译器标志以消除其中的所有警告。您必须转到目标配置的 Build phases
菜单,并通过双击每个文件末尾输入 Compile Sources
标志,为 -w
部分中的每个源文件设置此标志。
如果您正在使用 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
如果警告来自包含的库或框架头文件,您可以像这样包装包含语句:
#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
如果警告来自迦太基添加的框架(对我来说是 Rollbar):
Carthage/Build/<platform>
拖到Xcode中,将其添加到您刚刚创建的虚拟/包装框架(RollbarWrapper)转到虚拟/包装框架(RollbarWrapper)的构建设置并将“禁止所有警告”设置为是
接下来,将框架(Rollbar)添加到应用程序目标的框架、库和嵌入内容部分,并设置为“不嵌入”
copy-frameworks
脚本以复制 Rollbar 框架)如果您使用第三方静态库 (
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 个标志列表中查找各个警告标志方便得多。