Игнорировать предупреждения Xcode при использовании Cocoapods

Я использую довольно много сторонних библиотек, у которых в нем много предупреждений, после последних обновлений Xcode. (например, модуль SDK для Facebook) Теперь все эти предупреждения отображаются в моем Xcode на том месте, где я хочу видеть свои собственные предупреждения или ошибки.

Можно ли игнорировать эти ошибки? Фиксация их не поможет, так как после каждой установки "pod install" изменения отбрасываются.

Ответ 1

Добавить в подфайл:

platform :ios

# ignore all warnings from all pods
inhibit_all_warnings!

# ignore warnings from a specific pod
pod 'FBSDKCoreKit', :inhibit_warnings => true

Затем выполните: pod install

Ответ 2

Вы можете искать "inhibit_all_warnings" в настройках сборки xcode в PodBundle в вашем рабочем пространстве проекта, чтобы установить значение "YES", оно скроет все ваши предупреждения в файле Pod.

Если вы сделаете это в своем рабочем пространстве, он также скроет весь ваш проект.

Ответ 3

Хотя этот другой ответ удалит предупреждения во время фазы сборки, он, похоже, не полностью исправит фазу Analyze (что привело к тому, что наша сборка CI оставалась неподвижной имеют проблемы).

Что сработало для меня (помимо принятого ответа):

  • Нажмите проект Pods в Навигаторе проектов
  • Выберите фактическую цель Pod- и нажмите Build Settings
  • Фильтр с фразой compiler flags
  • Добавьте новый Other C Flags со значением -w -Xanalyzer -analyzer-disable-checker -Xanalyzer core (или независимо от того, какие анализаторы вам нужно отключить) - этот ответ предоставляет полный список флагов для попробуйте - пожалуйста, повысьте его!

    Однако версия clang в Xcode 6.3.1 не включает insecureAPI, поэтому вы можете удалить ее из этого списка. "Текущий" полный список -w -Xanalyzer -analyzer-disable-checker -Xanalyzer alpha -Xanalyzer -analyzer-disable-checker -Xanalyzer core -Xanalyzer -analyzer-disable-checker -Xanalyzer cplusplus -Xanalyzer -analyzer-disable-checker -Xanalyzer deadcode -Xanalyzer -analyzer-disable-checker -Xanalyzer debug -Xanalyzer -analyzer-disable-checker -Xanalyzer llvm -Xanalyzer -analyzer-disable-checker -Xanalyzer osx -Xanalyzer -analyzer-disable-checker -Xanalyzer security -Xanalyzer -analyzer-disable-checker -Xanalyzer unix

Обратите внимание, что установка этого параметра в проекте Pods Project или Pods не будет работать. Я не уверен, почему, но вы должны установить его для каждой фактической цели Pod-.

Вы также можете установить флаги компилятора (-w -Xanalyzer -analyzer-disable-checker -Xanalyzer core и т.д.) на для каждого файла.

Я также пробовал пару других методов (которые могут или не могут потребоваться в дополнение к выше). Они были выполнены в самом проекте Pods.


[1]

  • Фильтр с фразой analyzer
  • Убедитесь, что для параметра Analyze During 'Build' установлено значение NO.
  • Измените все настройки на NO (включая Improper Memory Management)

[2]

  • Фильтр с фразой warnings
  • Измените inhibit all warnings на YES

По какой-то причине даже отключение шага Analyze в схеме не работает.

Перейдите в окно Product > Scheme > Manage Schemes, щелкните по каждому Pod-* в списке и нажмите кнопку Edit. Нажмите Build в левом списке, а затем снимите флажок Analyze с правой стороны для цели Pod.

Я все еще смущен тем, почему я не могу полностью отключить Pods от анализа, хотя я ожидаю, что это может иметь отношение к "Поиск неявных зависимостей", установленным в настройках построения схемы. Однако, если это не было проверено, похоже, что приложение должно будет подключиться к другим приложениям.

Ответ 4

Шаг: 1 Поместите приведенный ниже скрипт в ваш Podfile.

post_install do |installer|
    installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
            config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = "YES"
        end
    end
end

Шаг 2. pod install.