使用Cocoapods时忽略Xcode警告

在最新的Xcode更新之后,我使用了很多第三方库,其中有很多警告。(例如Facebook SDK pod) 现在所有这些警告都显示在我的Xcode中,在我想看到自己的警告或错误的地方。< / p >

有没有办法忽略这些错误?修复它们不会有帮助,因为在每次“pod安装”之后,更改都会被丢弃。

89078 次浏览

添加到您的Podfile:

platform :ios


# ignore all warnings from all pods
inhibit_all_warnings!


# ignore warnings from a specific pod
pod 'FBSDKCoreKit', :inhibit_warnings => true

然后执行:pod install

你可以搜索“inhibit_all_warnings&;在你的项目工作区的PodBundle的Xcode构建设置中。设置为“;YES"”它会隐藏所有Pod文件警告。

如果你对你的工作空间这样做,它也会隐藏你所有的项目警告。

虽然另一个答案将删除构建阶段的警告,但它似乎并没有完全修复Analyze阶段(这导致我们的CI构建仍然存在问题)。

对我有用的(除了公认的答案)是:

  • 在项目导航器中单击Pods项目

  • 选择实际的Pod-目标,并单击Build Settings

  • 使用短语compiler flags进行筛选

  • 添加一个新的Other C Flags,值为-w -Xanalyzer -analyzer-disable-checker -Xanalyzer core(或任何你需要禁用的分析器)- 这个答案提供了完整的标志列表,请给它投票!

    不过,Xcode 6.3.1中的clang版本似乎不包括insecureAPI,所以你可以将它从列表中删除。“current"完整列表是-w -Xanalyzer -analyzer-disable-checker -Xanalyzer alpha -Xanalyzer -analyzer-disable-checker -Xanalyzer core -Xanalyzer -analyzer-disable-checker -Xanalyzer cplusplus -Xanalyzer -analyzer-disable-checker -Xanalyzer deadcode -Xanalyzer -analyzer-disable-checker -Xanalyzer debug -Xanalyzer -analyzer-disable-checker -Xanalyzer llvm -Xanalyzer -analyzer-disable-checker -Xanalyzer osx -Xanalyzer -analyzer-disable-checker -Xanalyzer security -Xanalyzer -analyzer-disable-checker -Xanalyzer unix

注意,在Pods项目或Pods目标不会起作用上设置此参数。我不确定为什么,但你必须为每个实际的Pod-目标设置它。

你也可以在上面的基础上设置编译器标志(-w -Xanalyzer -analyzer-disable-checker -Xanalyzer core等)。

我还尝试了一些其他方法(除了上述方法之外,可能需要也可能不需要)。它们是在Pods项目本身执行的。


[1]

  • 使用短语analyzer进行筛选
  • 确保Analyze During 'Build'被设置为NO
  • 将所有设置更改为NO(包括Improper Memory Management)

[2]

  • 使用短语warnings进行筛选
  • inhibit all warnings更改为YES

由于某些原因,即使在方案中禁用Analyze步骤似乎也不起作用。

转到Product > Scheme > Manage Schemes窗口,从列表中单击每个Pod-*,然后单击Edit按钮。在左边的列表中单击Build,然后在右边的列表中单击取消 Analyze,用于Pod目标

我仍然很困惑,为什么我不能完全禁止Pods被分析,尽管我预计这可能与“寻找隐式依赖”有关。在方案的构建设置中进行了检查。不过,如果不勾选这一点,似乎还需要发生其他事情才能让应用程序链接到pods。

1 .把下面的脚本放到你的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

步骤2。做pod install