Исключение модулей из конфигурации SwiftLint

Я интегрирую SwiftLint через Cocoapods в существующий проект.

Каталог моего проекта такой:

AppNameRepo
|-- AppName
|   |--.swiftlint.yml
|--AppName.xcworkspace
|--Pods

И мой .swiftlint.yml, поскольку я пытался исключить модули:

included: # paths to include during linting. `--path` is ignored if present.
- Project
- ProjectTests
- ProjectUITests
excluded: # paths to ignore during linting. Takes precedence over `included`.
- Pods
- ../Pods
- ./Pods
- /Pods
- Project/R.generated.swift
- Project/Pods

Я действительно не понимаю, для чего он разрешает тег «Проект», поэтому я хватаюсь за соломинку, чтобы исключить каталог Pod, который находится на уровне выше, чем файл .swiftlint.yml. Я попытался переместить .swiftlint.yml на уровень выше, чтобы он располагался рядом с /AppName и /Pods, но затем независимо от того, что я изменил во включенном (который, я не думал, нужно будет изменить, как я предполагал рекурсивно работал), swiftlint будет утверждать, что нет lintable-файлов, поэтому я не знаю, что делать дальше.


person agreendev    schedule 06.07.2018    source источник


Ответы (3)


Swiftlint разрешает пути относительно себя. Переместите файл .swiftlint.yml на уровень выше. Project следует изменить, чтобы отразить вашу папку AppName, а не имя проекта. Ваш файл swiftlint будет выглядеть так:

included:
  - AppName

excluded:
  - Pods
person Sean Kladek    schedule 06.07.2018

Начиная с 0.43.0 версии, вам необходимо указать путь относительно текущего рабочего каталога, поэтому вы можете использовать ${PWD}:

excluded:
  - ${PWD}/Pods
person pableiros    schedule 09.03.2021

Хотя это не было проблемой ОП, я наткнулся на эту страницу, и моя проблема заключалась в том, что мой swiftlint.yml не был добавлен как .swiftlint.yml

person Joe Zhou    schedule 29.03.2021