繁体   English   中英

使用Cocoapods时忽略Xcode警告

[英]Ignore Xcode warnings when using Cocoapods

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

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

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

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

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

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

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

  • 单击Project Navigator中的Pods项目
  • 选择实际的Pod- Target并单击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步骤似乎也不起作用。

\n

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

我仍然感到困惑,为什么我不能完全禁用Pods被分析,虽然我希望它可能与方案的构建设置中选中的“查找隐式依赖项”有关。 但是,如果未经检查,则看起来应用程序需要发生其他内容才能链接到pod。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM