Wie können in Xcode alle Warnungen in bestimmten Quelldateien unterdrückt werden?

137

In meiner Anwendung verwende ich Code von Drittanbietern, der einige Warnungen auslöst. Ich habe sie überprüft und sie können sicher ignoriert werden.

Jetzt möchte ich eine Datei irgendwie "markieren", damit Xcode keine Warnungen für den Code in dieser Datei anzeigt.

Wie soll ich das machen

Bobrovsky
quelle

Antworten:

277

Wählen Sie Ihr Ziel aus und zeigen Sie Build-Phasen an. Geben Sie dann den Namen der Datei in das Suchfeld ein und Sie sollten ihn in der Phase Quellen kompilieren sehen. Doppelklicken Sie in die Spalte Compiler Flags für diese Datei und geben Sie ein -w, um alle Warnungen für diese Datei zu deaktivieren.

Jon Reid
quelle
9
Hmm, ich hatte erwartet -w, alle Warnungen auszuschalten, aber vielleicht beachtet der neue Compiler das nicht. Deaktivieren Sie in diesem Fall einzelne Warnungen. Suchen Sie die betreffende Warnung in den Build-Einstellungen und zeigen Sie die Schnellhilfe in der Ansicht Dienstprogramme an. Sie sollten eine Beschreibung mit einer -Wname-of-warningSyntax sehen. Stellen Sie dem Namen "no-" voran und geben Sie dies in Compiler Flags an. Beispiel: zum Ausschalten -Wunused-parameterangeben-Wno-unused-parameter
Jon Reid
14
Es stellt sich heraus, dass dies alles vom Compiler abhängig ist. Ich meine, in einem Projekt, das den LLVM-GCC-Compiler verwendet, ist -wdies der Trick, und in einem anderen Projekt, das einen einfachen GCC-Compiler verwendet, -Wno-name-of-warningist dies der einzige Weg.
Bobrovsky
6
Danke für den Hinweis, hat auch für mich ( -wund LLVM) funktioniert . Sehr praktisch, wenn Sie Dateien von Drittanbietern hinzufügen, die Sie nicht ändern müssen.
user826955
1
@Zammbi Da der Code automatisch generiert wird, korrigieren Sie ihn, um Code ohne Warnungen zu generieren. Wenn Sie dies nicht tun können, patchen Sie das Xcode-Projekt automatisch, um das Compiler-Flag zu setzen.
Jon Reid
11
Funktioniert nicht mit Swift 2 unter Verwendung von Xcode 7.0 und Apple LLVM 7.0
King-Wizard
6

Wählen Sie im linken Navigator Projekt aus und wählen Sie Ziel. Gehen Sie zur Erstellungsphase und setzen Sie -w in Erstellungsphase der Zieldatei. Alle Compiler-Warnungen werden ausgeblendet Geben Sie hier die Bildbeschreibung ein

Spydy
quelle
17
Funktioniert nicht mit Swift 2 unter Verwendung von Xcode 7.0 und Apple LLVM 7.0
King-Wizard
2
Das Übergeben von Clang-Compiler-Flags an einen fremden Compiler funktioniert nicht. quelle überraschend ... google das Warnflag für den schnellen Compiler und füge das stattdessen hinzu.
Jheriko
4

Dies funktioniert für Xcode 10.2+ und Swift 5

Manuelle Korrektur:

Fügen Sie -w -Xanalyzer -analyzer-disable-all-checksder problematischen Datei über Xcode> Projekt> Ziele> Quellen kompilieren> Doppelklicken Sie auf die Datei, in der Sie Warnungen deaktivieren möchten.

Cocoapods Fix:

Wenn Sie versuchen, Warnungen von einem problematischen Pod zu unterdrücken, können Sie automatisch alle Warnungen von der Abhängigkeit mit dem inhibit_warningsFlag in Ihrer Pod-Datei unterdrücken :

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

Geben Sie hier die Bildbeschreibung ein

Cal S.
quelle
Das Cocoapods Fix hat gut funktioniert, danke!
Adougies