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ć?

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.


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


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


Naprawiono cocoapods, dzięki!
— dorośli
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.