web-dev-qa-db-fra.com

Ignorer les avertissements Xcode lors de l'utilisation de Cocoapods

J'utilise beaucoup de bibliothèques tierces contenant de nombreux avertissements, après les dernières mises à jour de Xcode. (par exemple le pod SDK de Facebook) Maintenant, tous ces avertissements sont affichés dans mon Xcode à l'endroit où je veux voir mes propres avertissements ou erreurs.

Est-il possible d'ignorer ces erreurs? Leur correction ne sera d'aucune utilité, car après chaque "installation pod", les modifications sont ignorées.

380
KrauseFx

Ajoutez à votre podfile:

platform :ios

# ignore all warnings from all pods
inhibit_all_warnings!

# ignore warnings from a specific pod
pod 'FBSDKCoreKit', :inhibit_warnings => true

Puis exécutez: pod install

900
alloy

Vous pouvez rechercher "inhibit_all_warnings" dans les paramètres de construction xcode de PodBundle dans votre espace de travail (projet). Définissez la valeur sur "OUI" pour masquer tous les avertissements relatifs au fichier Pod.

Si vous le faites sur votre espace de travail, tous vos projets seront également masqués.

26
Teja Swaroop

Bien que cette autre réponse supprime les avertissements lors de la phase de construction, il ne semble pas résoudre complètement la phase Analyze (ce qui a causé des problèmes à la construction de notre CI).

Ce qui a fonctionné pour moi (en plus de la réponse acceptée) a été:

  • Cliquez sur le projet Pods dans le navigateur de projet.
  • Choisissez la cible Pod- réelle et cliquez sur Build Settings
  • Filtrez avec la phrase compiler flags
  • Ajoutez un nouveau Other C Flags avec la valeur -w -Xanalyzer -analyzer-disable-checker -Xanalyzer core (ou selon l’analyseur à désactiver) - cette réponse fournit la liste complète des drapeaux à essayer.

    La version de clang dans Xcode 6.3.1 ne semble cependant pas inclure insecureAPI, vous pouvez donc la supprimer de cette liste. La liste complète "actuelle" est -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

Notez que régler ceci sur le Pods Project ou Pods Target ne fonctionnera pas . Je ne sais pas pourquoi, mais vous devez le définir pour chaque cible réelle Pod-.

Vous pouvez également définir les indicateurs du compilateur (-w -Xanalyzer -analyzer-disable-checker -Xanalyzer core etc.) sur une base par fichier .

J'ai également essayé quelques autres méthodes (qui peuvent ou non être nécessaires en plus de ce qui précède). Ils ont été exécutés sur le projet Pods lui-même.


[1]

  • Filtrez avec la phrase analyzer
  • Assurez-vous que Analyze During 'Build' est réglé sur NO.
  • Définissez tous les paramètres sur NO (y compris Improper Memory Management).

[2]

  • Filtrez avec la phrase warnings
  • Remplacez inhibit all warnings par YES

Pour une raison quelconque, même la désactivation de l'étape Analyze du schéma ne semble pas fonctionner.

Allez à la fenêtre Product > Scheme > Manage Schemes, cliquez sur chaque Pod-* de la liste et cliquez sur le bouton Edit. Cliquez sur Build dans la liste de gauche, puis décochez la case Analyze à droite pour le Pod cible.

Je ne comprends toujours pas pourquoi je ne parviens pas à désactiver complètement l'analyse des pods, même si je suppose que cela pourrait avoir à voir avec "Rechercher les dépendances implicites" dans les paramètres de construction du schéma. Toutefois, si cette option n'est pas cochée, il semble que l'application doive créer un lien vers les pods.

5
Jedidja

Étape 1: Mettez le script ci-dessous dans votre 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

Étape 2. Faites pod install.

1
Toseef Khilji