В 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.