web-dev-qa-db-ja.com

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

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

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

369
KrauseFx

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

874
alloy

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

ワークスペースで実行すると、プロジェクトもすべて非表示になります。

25
Teja Swaroop

この他の回答 はビルドフェーズ中に警告を削除しますが、Analyzeフェーズを完全に修正するようには見えません(これにより、CIビルドにまだ問題があります)。

(受け入れられた答えに加えて)私のために働いたのは:

  • Project Navigatorから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 ProjectまたはPodsターゲットでこれを設定しても機能しないことに注意してください。理由はわかりませんが、実際のPod-ターゲットごとに設定する必要があります。

コンパイラフラグ(-w -Xanalyzer -analyzer-disable-checker -Xanalyzer coreなど)を ファイルごとに設定することもできます

また、他にもいくつかの方法を試してみました(上記に加えて必要な場合とそうでない場合がある)。それらはPodsプロジェクト自体で実行されました。


[1]

  • analyzerでフィルター
  • Analyze During 'Build'NOに設定されていることを確認してください。
  • すべての設定をNOImproper Memory Managementを含む)に変更します

[2]

  • warningsでフィルター
  • inhibit all warningsYESに変更します

何らかの理由で、スキームのAnalyzeステップを無効にしても機能しないようです。

Product > Scheme > Manage Schemesウィンドウに移動し、リストから各Pod-*をクリックして、Editボタンをクリックします。左側のリストでBuildをクリックし、右側のAnalyzeターゲットのuncheckPodをクリックします。

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

4
Jedidja

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

0
Toseef Khilji