在 Xcode 禁用来自框架的警告

我已经将 three-20项目导入到我的项目中,当我用 iOS 5升级到 Xcode 4.2时,项目中出现了一系列警告。

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

30693 次浏览
  1. 如果您的第三方库是作为一个单独的目标添加的,那么您可以选择 Inhibit all warnings来关闭所有警告。

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

如果您正在使用 pods,您可以将其添加到 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) :

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

enter image description here

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

enter image description here

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

enter image description here

  1. 转到虚拟/包装器框架(RollbarWrapper)的构建设置,并将“抑制所有警告”设置为 < strong > Yes

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

enter image description here

  1. 最后,对于应用程序目标,执行 正常的迦太基装置(即创建一个新的 Run Script Stage 来执行 copy-frameworks脚本以复制 Rollbar 框架)

enter image description here