CocoaPodsの使用時にXcode警告を無視する


417

最新のXcode更新後、多くの警告が含まれているサードパーティのライブラリをかなり使用しています。(たとえば、Facebook SDKポッド)これで、これらの警告はすべて、自分の警告またはエラーを表示したい場所のXcodeに表示されます。

これらのエラーを無視する方法はありますか?すべての「ポッドインストール」の後で変更が破棄されるため、それらを修正しても役に立ちません。

回答:


968

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


3
それをどのように含めるのですか?現在私はs.dependency 'Facebook-iOS-SDK' s.inhibit_all_warningsを使用しています!そして、私は次のエラーを受け取ります:未定義のメソッド `inhibit_all_warnings! ' #<Pod :: Specification for MyApp(1.0)>
KrauseFx

22
次の問題を解決するにはどうすればよいですか。すべてのポッドではなく、一部のポッドに対して警告を非表示にしたい。
KrauseFx

3
@krausefx申し訳ありませんが、コメントは見つかりませんでした。Podfileドキュメントに示すようにあたり、ポッドベースで後世のために、次のことが可能になりました無効警告:docs.cocoapods.org/podfile.html#inhibit_all_warnings_bang
合金

2
@JohanKarlssonディレクティブを削除して実行pod installし、Pods.xcodeprojを再生成します。
合金化

1
これは、Analyzeフェーズ中に警告(問題)が表示されることを妨げるものではないことに注意してください。別の答えでそのためのいくつかの提案を提供しました。
ジェディジャ

28

プロジェクトワークスペースのPodBundleのxcodeビルド設定で「inhibit_all_warnings」を検索できます。値を「YES」に設定すると、Podファイルの警告がすべて非表示になります。

作業スペースに配置すると、プロジェクトもすべて非表示になります。


これはより簡単な解決策です。ポッドプロジェクトでこれを設定すると、プロジェクトの警告ではなく、ポッド関連の警告のみが無効になります。ポッドインストールを再実行する必要はありません。
Andres Canella 2014年

28
推奨されません!次はpod installこの設定が上書きされるので、Podfileで設定することをお勧めします!
electronix384128

4
個人的に私はこれが好きなので、すべての更新ですべての警告をすばやく確認し、無視できるようにします。
Andres Canella 2015

ローカル開発ポッドのpodspecの依存関係はどうですか?
Ari Braginsky、2015

Swift Compiler - Warnings Policies> Suppress WarningsYes...に設定することもできます。ポッドでinhibit_all_warningsはまだ'characters' is deprecated: Please use String or Substring directly 警告が表示されていました。この設定により、この警告は削除されました。
Tiois

6

けれども、この他の答えは、ビルド・フェーズ中に警告を削除します、完全に修正するためには表示されません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左側のリストをクリックし、ターゲットの右側のチェックを外し ます。AnalyzePod

スキームのビルド設定でチェックされた「暗黙的な依存関係を検索する」に関係している可能性があるとは思いますが、分析されないようにポッドを完全に無効にできない理由についてはまだ混乱しています。これがオフになっていると、アプリがポッドにリンクするために何か他のことが必要になるようです。


1
注:残念ながら、リポジトリからポッドと.xcworkspaceを除外する場合、これはCIには役立ちません-.gitignoreを使用します。
RileyE

@RileyE興味深い-それらをリポジトリから除外する正当な理由はありますか?もしそうなら、このページの他のテクニックはあなたのために機能しますか?(私はまだiOS開発の比較的初心者なので、もっと詳しく知り
たいと思い

それを含めるかどうかには大きな隔たりがあります。私のpodfileが常に正確であることを確認し、異なるユーザーのPodfile.lockと.xcworkspacesの間にいくつかの競合を見つけたので、それを含めるのは好きではありません。これは、議論の余地のある賛否両論を持つユーザーにとっての好みです。
RileyE

@RileyE情報ありがとうございます!それで、Pods / .xcworkspaceを除外した場合、問題の回避策はありませんか?
Jedidja

残念ながら違います。これが私がに追加のフラグを要求している理由pod installです。
RileyE

5

ステップ: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ます。


2
また、Swift config.build_settings['SWIFT_SUPPRESS_WARNINGS'] = "YES"
Podsに
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.