В Xcode, как подавить все предупреждения в определенных исходных файлах?


137

В моем приложении я использую сторонний код, который вызывает некоторые предупреждения. Я их просмотрел и их можно смело игнорировать.

Теперь я хочу как-то «пометить» файл, чтобы XCode не отображал никаких предупреждений для кода в этом файле.

Как мне это сделать?

Ответы:


277

Выберите цель и покажите этапы сборки. Затем введите имя файла в поле поиска, и вы должны увидеть его в списке на этапе компиляции источников. Дважды щелкните столбец «Флажки компилятора» для этого файла и введите, -wчтобы отключить все предупреждения для этого файла.


9
Хм, я ожидал -wотключить все предупреждения, но, возможно, новый компилятор не обращает на это внимания. В этом случае отключите отдельные предупреждения. Найдите нужное предупреждение в настройках сборки и откройте «Быстрая справка» в представлении «Утилиты». Вы должны увидеть описание с -Wname-of-warningсинтаксисом. Добавьте «no-» к имени и укажите его в флагах компилятора. Пример: отключить -Wunused-parameterуказать-Wno-unused-parameter
Джон Рид

14
Оказывается, все это зависит от компилятора. Я имею в виду, что в одном проекте, использующем LLVM GCC-компилятор, свое дело, -wа в другом проекте, использующем простой GCC-компилятор, -Wno-name-of-warningединственный путь.
Бобровский

6
Спасибо за подсказку, также работал для меня ( -wи LLVM). Очень удобно, когда вы включаете сторонние файлы, которые вы не хотите изменять.
user826955

1
@Zammbi Поскольку код генерируется автоматически, исправьте его, чтобы генерировать код без предупреждений. Если вы не можете этого сделать, автоматически пропатчите проект Xcode, чтобы установить флаг компилятора.
Джон Рейд

11
Не работает со Swift 2 с использованием Xcode 7.0 и Apple LLVM 7.0
King-Wizard

6

Выберите Project в левом навигаторе и выберите target, перейдите к фазе сборки и введите -w в Build Phase целевого файла. Это будет скрывать все предупреждения компилятора введите описание изображения здесь


17
Не работает со Swift 2 с использованием Xcode 7.0 и Apple LLVM 7.0
King-Wizard

2
передача флагов компилятора clang стороннему компилятору не работает. Quelle Surprise ... Google предупредительный флаг для быстрого компилятора и добавьте его вместо этого.
Джерико,

4

Это работает для Xcode 10.2+ и Swift 5

Ручное исправление:

Добавьте -w -Xanalyzer -analyzer-disable-all-checksк проблемному файлу из Xcode> Project> Targets> Compile Sources> Дважды щелкните файл, в котором вы хотите отключить предупреждения.

Cocoapods Fix:

Если вы пытаетесь подавить предупреждения от проблемного модуля, вы можете автоматически подавить все предупреждения из зависимости с помощью inhibit_warningsфлага в вашем подфайле :

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

введите описание изображения здесь


Исправление cocoapods сработало, спасибо!
Adougies
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.