2014-10-02 15 views
11

Ho uno spazio di lavoro Xcode impostato con CocoaPods. Quando eseguo Xcode's Analyzer sul mio progetto analizza il mio codice sorgente e tutto il codice sorgente negli obiettivi dei pod. Questo genera molti avvertimenti che non mi interessano visto che voglio solo vedere gli avvertimenti dell'analizzatore sul mio codice sorgente.Xcode Analyzer - Ignora bersagli CocoaPods

Ho deselezionato "Analizza" dal target di compilazione per i pod ma questo non sembra avere alcun effetto.

C'è un modo per ignorare i bersagli dei pod quando si esegue l'analizzatore?

enter image description here

+1

La risposta è qui http://stackoverflow.com/questions/13208202/ignore-xcode-warnings-when-using-cocoapods –

+1

@YuriSolodkin Questo è per gli avvisi , non avvisi di analizzatore statico – CarmeloS

risposta

3

È possibile aggiungere un post installazione passo alla fine della vostra podfile aggiungere flag di compilazione che controllano l'analizzatore statico.

post_install do |installer| 
    puts 'Removing static analyzer support' 
    installer.project.targets.each do |target| 
     target.build_configurations.each do |config| 
      config.build_settings['OTHER_CFLAGS'] = "$(inherited) -Qunused-arguments -Xanalyzer -analyzer-disable-all-checks" 
     end 
    end 
end 

Quindi basta eseguire un comando "pod update" per rigenerare i file di progetto.

Le varie parti:

  • $ (ereditato) - Una buona abitudine di non evitare accidentalmente rimuovere bandiere
  • -Qunused-argomenti - LLVM non capisce le opzioni Clang, questa tacita il avviso risultante dalla compilation principale
  • -Xanalyzer -analyzer-disable-all-checks - Questo indica all'analizzatore statico di ignorare i file nel progetto associato.
+0

Questo funziona per il mio Cocoapods 0.35.0. – CarmeloS

5

Ecco un aggiornamento/modifica per la risposta esistente:

Con Cocoapods 0.38+ attributo installazione necessaria per ottenere il progetto è cambiato in modo tale che è necessario utilizzare "pods_project" invece di "progetto" in questo modo:

post_install do |installer| 
    puts 'Removing static analyzer support' 
    installer.pods_project.targets.each do |target| 
     target.build_configurations.each do |config| 
      config.build_settings['OTHER_CFLAGS'] = "$(inherited) -Qunused-arguments -Xanalyzer -analyzer-disable-all-checks" 
     end 
    end 
end 

Vedere il seguente annuncio Cocoapods blog per maggiori dettagli sul cambiamento: http://blog.cocoapods.org/CocoaPods-0.38/#breaking-change-to-the-hooks-api

Inoltre, ecco una (chiuso) questione che mostra l'errore si farebbe ricevi se hai provato la vecchia maniera con il nuovo codice: https://github.com/CocoaPods/CocoaPods/issues/3918