Xcode Analyzer - Игнорировать цели CocoaPods
У меня есть рабочее пространство Xcode, настроенное с помощью CocoaPods. Когда я запускаю Xcode Analyzer в своем проекте, он анализирует мой собственный исходный код, а также весь исходный код в целевых группах. Это вызывает множество предупреждений, которые меня не интересуют, поскольку я только хочу видеть предупреждения анализатора моего собственного исходного кода.
Я снял флажок "Анализировать" из цели сборки для контейнеров, но это, похоже, не имеет никакого эффекта.
Есть ли способ игнорировать объекты Pods при запуске анализатора?
![enter image description here]()
Ответы
Ответ 1
Здесь обновление/модификация существующего ответа:
С Cocoapods 0.38+ атрибут установщика, необходимый для получения проекта, изменился так, что вам нужно использовать "pods_project" вместо "project", например:
post_install do |installer|
puts 'Removing static analyzer support'
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['OTHER_CFLAGS'] = "$(inherited) -Qunused-arguments -Xanalyzer -analyzer-disable-all-checks"
end
end
end
Подробнее об изменениях см. в следующем объявлении блога Cocoapods: http://blog.cocoapods.org/CocoaPods-0.38/#breaking-change-to-the-hooks-api
Кроме того, здесь (закрытая) проблема, показывающая ошибку, которую вы получите, если попробуете старый способ с новым кодом: https://github.com/CocoaPods/CocoaPods/issues/3918
Ответ 2
Вы можете добавить шаг post post в конце вашего podfile, чтобы добавить флаги компилятора, которые управляют статическим анализатором.
post_install do |installer|
puts 'Removing static analyzer support'
installer.project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['OTHER_CFLAGS'] = "$(inherited) -Qunused-arguments -Xanalyzer -analyzer-disable-all-checks"
end
end
end
Затем просто запустите команду "pod update", чтобы восстановить файлы проекта.
Различные части:
- $(унаследованный) - хорошая привычка не избегать случайного удаления флажков.
- -Qunused-arguments - llvm не понимает параметры clang, это затухает в результате предупреждения из основной компиляции
- -Xanalyzer -analyzer-disable-all-checks - Это указывает статическому анализатору игнорировать файлы в связанном проекте.