从框架中禁用Xcode中的警告

时间:2011-11-03 15:36:52

标签: xcode xcode4.2 compiler-warnings suppress-warnings

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

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

4 个答案:

答案 0 :(得分:146)

  1. 如果您的第三方库作为单独的目标添加,则可以检查Inhibit all warnings该特定目标是否关闭所有警告。

  2. 如果您的库作为普通源文件添加到当前目标,则可以为各个源设置-w编译器标志以将其中的所有警告静音。您必须转到目标配置的Build phases菜单,并通过双击每个输入Compile Sources标志的文件结尾为-w部分中的每个源文件设置此标志。 enter image description here

答案 1 :(得分:11)

如果您使用的是pod,则可以将其添加到podfile以防止警告日志记录:

(Some(1),Some(4),Some(5))

答案 2 :(得分:3)

如果警告来自所包含的库或框架头文件,则可以包装包含以下内容的语句:

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

将警告标志放在上方第二行。您可以在ClangWarnings.com

处通过警告消息查找警告标志

答案 3 :(得分:0)

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

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

enter image description here

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

enter image description here

  1. 确保将框架(Rollbar)添加到虚拟/包装器框架(RollbarWrapper)目标的“框架和库”部分,并将其设置为“不嵌入”

enter image description here

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

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

enter image description here

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

enter image description here