Почему SwiftLint whitelist_rules не работает в моем проекте?

#ios #swift #swiftlint

#iOS #swift #swiftlint

Вопрос:

Я пытаюсь настроить swiftlint в своем проекте и white_list не работает.

Вот что я пытаюсь сделать:

мой .swiftlint.yml :

 whitelist_rules:
  - force_cast: warning
  

мой код:

 let forceCast: Int = "hue" as! Int
  

что выдает ошибку:

Нарушение принудительного приведения: следует избегать принудительного приведения. (force_cast)

когда я ожидаю, что он выдаст мне только предупреждение, а не ошибку. Помимо этого примера, никакое другое правило не работает при включении whitelist .

Я знаю, что swiftlint читает мой .swiftlint.yml , потому что я тестировал его, disabled_rules и, похоже, он работает нормально, так что дело не в пути к моему .swiftlint.yml файлу.

Кроме того, для записи,

  • Я правильно настроил этап запуска скрипта
  • Я не использую whitelist_rules вместе с disabled_rules и opt_in_rules , я использую только whitelist_rules .
  • Я использую swiftlint версии 0.40.3, xcode 11.3, ios 13.2 и swift 5

Чего мне не хватает? Почему это не работает?

Комментарии:

1. Я не думаю, что вы можете настроить правило в той же строке, где оно добавляется в белый список. Попробуйте удалить : warning here , а затем в другой строке (за пределами правил белого списка) скажите force_cast: warning , чтобы настроить правило, и посмотрите, работает ли это.

Ответ №1:

На случай, если у кого-то возникли недавние проблемы с whilelist_rules ключом конфигурации, обратите внимание, что он был переименован в only_rules в версии 0.41.0

https://github.com/realm/SwiftLint/releases/tag/0.41.0