使用Cocoapods时忽略Xcode警告

Kra*_*eFx 394 iphone xcode warnings cocoapods

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

有没有办法忽略这些错误?修复它们无济于事,因为在每次"pod安装"之后,更改都会被丢弃.

all*_*loy 926

添加到您的Podfile:

platform :ios

# ignore all warnings from all pods
inhibit_all_warnings!

# ignore warnings from a specific pod
pod 'FBSDKCoreKit', :inhibit_warnings => true
Run Code Online (Sandbox Code Playgroud)

然后执行: pod install

  • 如何解决以下问题:我希望某些pod隐藏警告,但不是所有pod都隐藏. (21认同)
  • 我该如何包含它?目前我使用s.dependency'Facebook-iOS-SDK's.inhibit_all_warnings!我收到以下错误:未定义的方法`inhibit_all_warnings!' for#<Pod :: MyApp(1.0)>的规范> (3认同)
  • @krausefx对不起,没看到你的评论.为了后人,您现在可以基于每个pod禁用警告,如Podfile文档中所示:http://docs.cocoapods.org/podfile.html#inhibit_all_warnings_bang (3认同)
  • @JohanKarlsson删除指令并运行`pod install`以重新生成Pods.xcodeproj. (2认同)

Tej*_*oop 26

您可以在项目工作空间中的PodBundle的xcode构建设置中搜索"inhibit_all_warnings",将值设置为"YES",它将隐藏所有Pod文件警告.

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

  • 不建议!使用下一个"pod install",这个设置被覆盖,所以最好在Podfile中设置它! (24认同)
  • 就个人而言,我确实喜欢这样,所以我记得每次更新都会快速查看所有警告,并确保它们可以忽略不计. (4认同)
  • 您还可以将“Swift 编译器 - 警告策略”&gt;“抑制警告”设置为“是”...使用“inhibit_all_warnings”我仍然有“不推荐使用‘字符’:请在 Pod 中直接使用字符串或子字符串”警告。此设置删除了此警告。 (2认同)

Tos*_*lji 10

步骤: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
Run Code Online (Sandbox Code Playgroud)

第 2 步pod install

  • 我还必须为 Swift Pod 添加以下内容: `config.build_settings['SWIFT_SUPPRESS_WARNINGS'] = "YES"` (3认同)

Jed*_*dja 5

尽管此其他答案将在构建阶段删除警告,但似乎无法完全解决该问题。Analyze阶段(这导致我们的CI生成仍然存在问题)。

除了可接受的答案外,对我有用的是:

  • 点击 Pods在项目浏览器中项目
  • 选择实际 Pod-目标并单击Build Settings
  • 用短语过滤 compiler flags
  • 添加一个Other C Flags带有值的新值-w -Xanalyzer -analyzer-disable-checker -Xanalyzer core(或您需要禁用的任何分析仪)- 此答案提供了尝试的标志的完整列表-请对其进行投票!

    clang不过,Xcode 6.3.1中的版本似乎并未包括在内,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。