W Xcode, jak pominąć wszystkie ostrzeżenia w określonych plikach źródłowych?

137

W mojej aplikacji używam kodu firm trzecich, który wywołuje pewne ostrzeżenia. Przejrzałem je i można je bezpiecznie zignorować.

Teraz chcę jakoś „oznaczyć” plik, więc Xcode nie pokaże żadnych ostrzeżeń dla kodu w tym pliku.

Jak mam to zrobić?

Bobrovsky
źródło

Odpowiedzi:

277

Wybierz swój cel i pokaż fazy budowy. Następnie wprowadź nazwę pliku w polu wyszukiwania i powinieneś zobaczyć go na liście w fazie Kompiluj źródła. Kliknij dwukrotnie kolumnę Flagi kompilatora dla tego pliku i wprowadź, -waby wyłączyć wszystkie ostrzeżenia dla tego pliku.

Jon Reid
źródło
9
Hmm, spodziewałem -wsię wyłączenia wszystkich ostrzeżeń, ale być może nowy kompilator nie zwraca na to uwagi. W takim przypadku wyłącz poszczególne ostrzeżenia. Znajdź odpowiednie ostrzeżenie w Ustawieniach kompilacji i wyświetl Szybką pomoc w widoku Narzędzia. Powinieneś zobaczyć opis wraz ze -Wname-of-warningskładnią. Dołącz „nie-” do nazwy i określ to we flagach kompilatora. Przykład: aby wyłączyć, -Wunused-parameterokreśl-Wno-unused-parameter
Jon Reid
14
Okazuje się, że wszystko to zależy od kompilatora. Chodzi mi o to, że w jednym projekcie, który używa kompilatora LLVM GCC, załatwia sprawę, -waw innym projekcie, który używa zwykłego kompilatora GCC, -Wno-name-of-warningjest jedyną drogą.
Bobrovsky
6
Dzięki za podpowiedź, też zadziałało dla mnie ( -wi LLVM). Naprawdę przydatne, gdy dołączasz pliki stron trzecich, których nie chcesz modyfikować.
user826955
1
@Zammbi Ponieważ kod jest generowany automatycznie, napraw go, aby generował kod wolny od ostrzeżeń. Jeśli nie możesz tego zrobić, automatycznie popraw projekt Xcode, aby ustawić flagę kompilatora.
Jon Reid
11
Nie działa ze Swift 2 przy użyciu Xcode 7.0 i Apple LLVM 7.0
King-Wizard
6

Wybierz Projekt w lewym nawigatorze i wybierz docelową, przejdź do fazy budowy i Umieść -w w fazie budowania pliku docelowego. Ukryje wszystkie ostrzeżenia kompilatora wprowadź opis obrazu tutaj

Szpieg
źródło
17
Nie działa ze Swift 2 przy użyciu Xcode 7.0 i Apple LLVM 7.0
King-Wizard
2
przekazywanie flag kompilatora clang do obcego kompilatora nie działa. quelle niespodzianka ... wygoogluj flagę ostrzegawczą dla szybkiego kompilatora i dodaj ją.
jheriko,
4

Działa to dla Xcode 10.2+ i Swift 5

Poprawka ręczna:

Dodaj -w -Xanalyzer -analyzer-disable-all-checksdo problematycznego pliku z Xcode> Projekt> Cele> Skompiluj źródła> Kliknij dwukrotnie plik, w którym chcesz wyłączyć ostrzeżenia.

Poprawka Cocoapods:

Jeśli próbujesz powstrzymać ostrzeżenia z problematycznego poda, możesz automatycznie pominąć wszystkie ostrzeżenia z zależności z inhibit_warningsflagą w pliku podfile :

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

wprowadź opis obrazu tutaj

Cal S
źródło
Naprawiono cocoapods, dzięki!
dorośli