467

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

有什么办法可以忽略这些错误?修复它们无济于事,因为在每次“pod install”之后,更改都会被丢弃。

4

4 回答 4

1073

添加到您的 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

于 2012-11-03T12:11:57.873 回答
36

您可以在项目工作区中 PodBundle 的 Xcode 构建设置中搜索“inhibit_all_warnings”。将值设置为“YES”,它将隐藏所有 Pod 文件警告。

如果您对工作区执行此操作,它也会隐藏您的所有项目警告。

于 2014-06-02T17:14:25.950 回答
16

步骤: 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

于 2019-05-22T05:41:52.660 回答
8

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

对我有用的(除了接受的答案)是:

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

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

  • 用短语过滤compiler flags

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

    不过,Xcode 6.3.1 中的版本clang似乎不包括在内insecureAPI,因此您可以将其从该列表中删除。“当前”完整列表是-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 warningsYES

出于某种原因,即使禁用Analyze方案中的步骤似乎也不起作用。

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

我仍然对为什么我不能完全禁用 Pod 进行分析感到困惑,尽管我认为这可能与在方案的构建设置中选中的“查找隐式依赖项”有关。但是,如果未选中此选项,则应用程序似乎需要发生其他事情才能链接到 pod。

于 2015-05-14T15:01:42.497 回答