In Xcode, come eliminare tutti gli avvisi in file di origine specifici?


137

Nella mia applicazione utilizzo codice di terze parti che attiva alcuni avvisi. Li ho esaminati e possono essere tranquillamente ignorati.

Ora voglio "contrassegnare" un file in qualche modo, quindi Xcode non mostrerà alcun avviso per il codice in quel file.

Come dovrei farlo?

Risposte:


277

Seleziona il tuo obiettivo e mostra le fasi di costruzione. Quindi inserisci il nome del file nella casella di ricerca e dovresti vederlo elencato nella fase di compilazione delle fonti. Fai doppio clic nella colonna Flag del compilatore per quel file e inserisci -wper disattivare tutti gli avvisi per quel file.


9
Hmm, mi aspettavo -wdi disattivare tutti gli avvertimenti, ma forse il nuovo compilatore non ci presta attenzione. In tal caso, disattivare i singoli avvisi. Trova l'avviso in questione in Impostazioni build e mostra Guida rapida nella vista Utilità. Dovresti vedere una descrizione, con una -Wname-of-warningsintassi. Prependi "no-" al nome e specifica quello in Flag del compilatore. Esempio: per disattivare -Wunused-parameterspecificare-Wno-unused-parameter
Jon Reid

14
Si scopre che tutto ciò dipende dal compilatore. Voglio dire, in un progetto che utilizza il compilatore GCC LLVM -wfa il trucco e in un altro progetto che utilizza il compilatore GCC semplice -Wno-name-of-warningè l'unica strada da percorrere.
Bobrovsky,

6
Grazie per il suggerimento, ha funzionato anche per me ( -we LLVM). Davvero utile quando includi file di terze parti che non vuoi modificare.
user826955

1
@Zammbi Poiché il codice viene generato automaticamente, correggilo per generare codice privo di avvisi. Se non riesci a farlo, applica automaticamente una patch al progetto Xcode per impostare il flag del compilatore.
Jon Reid,

11
Non funziona con Swift 2 utilizzando Xcode 7.0 e Apple LLVM 7.0
King-Wizard

6

Seleziona Progetto nel navigatore di sinistra e seleziona destinazione vai alla fase di costruzione e Inserisci -w nella fase di costruzione del file di destinazione. Nasconderà tutti gli avvisi del compilatore inserisci qui la descrizione dell'immagine


17
Non funziona con Swift 2 usando Xcode 7.0 e Apple LLVM 7.0
King-Wizard

2
passare i flag del compilatore clang a un compilatore straniero non funziona. quelle sorpresa ... google il flag di avvertimento per il compilatore veloce e aggiungilo invece.
jheriko,

4

Funziona con Xcode 10.2+ e Swift 5

Correzione manuale:

Aggiungi -w -Xanalyzer -analyzer-disable-all-checksal file problematico da Xcode> Progetto> Target> Compila origini> Fai doppio clic sul file in cui desideri disattivare gli avvisi.

Correzione Cocoapods:

Se stai cercando di sopprimere gli avvisi da un pod problematico, puoi sopprimere automaticamente tutti gli avvisi dalla dipendenza con il inhibit_warningsflag nel tuo podfile :

pod 'Kingfisher', '~> 4.6', :inhibit_warnings => true

inserisci qui la descrizione dell'immagine


La correzione dei cocoapodi ha funzionato a meraviglia, grazie!
adougies
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.