493 votes

Ignorer les avertissements de Xcode lors de l'utilisation de Cocoapods

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

Existe-t-il un moyen d'ignorer ces erreurs ? Les corriger ne servira à rien, car après chaque "pod install", les modifications sont supprimées.

1103voto

alloy Points 5899

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

Alors exécutez : pod install

3 votes

Comment puis-je l'inclure ? Actuellement, j'utilise s.dependency 'Facebook-iOS-SDK' s.inhibit_all_warnings ! et j'obtiens l'erreur suivante : undefined method `inhibit_all_warnings!' for #<Pod::Specification for MyApp(1.0)>.

0 votes

J'ai élargi un peu l'exemple pour rendre l'intention plus claire.

26 votes

Comment puis-je résoudre le problème suivant : je veux que les avertissements soient masqués pour certains pods, mais pas pour tous.

40voto

Teja Swaroop Points 158

Vous pouvez rechercher "inhibit_all_warnings" dans vos paramètres de construction Xcode du PodBundle dans votre espace de travail du projet. Mettez la valeur à "YES" et cela cachera tous les avertissements de votre fichier Pod.

Si vous le faites dans votre espace de travail, tous les avertissements de votre projet seront également masqués.

1 votes

C'est une solution plus simple, définissez ceci sur le projet pods et cela désactive seulement les avertissements liés aux pods, pas ceux de votre projet. Il n'est pas nécessaire de réexécuter l'installation des pods.

36 votes

Non recommandé ! Avec le prochain pod install ce paramètre est écrasé, donc il vaut mieux le définir dans le Podfile !

4 votes

Personnellement, j'aime bien cela, car à chaque mise à jour, je me souviens de jeter un coup d'œil rapide à tous les avertissements et de m'assurer qu'ils sont négligeables.

22voto

Viruss mca Points 9358

Etape : 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 .

8voto

Jedidja Points 5642

Bien que cette autre réponse supprimera les avertissements pendant la phase de construction, mais il ne semble pas que cela corrige complètement le problème de l'utilisation de l'ordinateur. Analyze (ce qui a causé des problèmes à notre build CI).

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

  • Cliquez sur le Pods à partir du navigateur de projets

  • Choisissez l'effectif Pod- Cible et cliquez sur Build Settings

  • Filtrer avec la phrase compiler flags

  • Ajouter un nouveau Other C Flags avec la valeur -w -Xanalyzer -analyzer-disable-checker -Xanalyzer core (ou tout autre analyseur que vous souhaitez désactiver). cette réponse fournit la liste complète des drapeaux à essayer - merci de l'upvoter !

    La version de clang dans Xcode 6.3.1, cependant, ne semble pas inclure insecureAPI afin que vous puissiez le retirer de cette liste. La liste complète "actuelle" est la suivante -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 ce paramètre sur le Pods Projet ou Pods Cible ne fonctionnera pas . Je ne sais pas trop pourquoi, mais vous devez le définir pour chaque cas réel. Pod- cible.

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

J'ai également essayé quelques autres méthodes (qui peuvent ou non être nécessaires en plus de celles mentionnées ci-dessus). Elles ont été effectuées sur le Pods Le projet lui-même.


[1]

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

[2]

  • Filtrer avec la phrase warnings
  • Changement inhibit all warnings à YES

Pour une raison quelconque, même en désactivant le Analyze étape du schéma ne semble pas fonctionner.

Allez à la Product > Scheme > Manage Schemes cliquez sur chaque Pod-* de la liste et cliquez sur le bouton Edit bouton. Cliquez sur Build dans la liste de gauche, puis décochez Analyze sur le côté droit pour le Pod cible.

Je ne comprends toujours pas pourquoi je ne peux pas désactiver complètement l'analyse des pods, même si je pense que cela peut avoir un rapport avec l'option "Find implicit dependencies" cochée dans les paramètres de construction du schéma. Si cette option n'était pas cochée, il semblerait que quelque chose d'autre doive se produire pour que l'application soit liée aux pods.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X