我尝试使用CocoaPods安装SwiftLint,并在构建阶段添加以下脚本:
"${PODS_ROOT}/SwiftLint/swiftlint"
SwiftLint已正确安装,并且在项目中出现很多错误和警告。
然后,我创建了swiftLint.yml文件,在其中我修改了一些规则,但这些规则并未纳入考虑范围,并且Xcode项目中仍存在相同数量的错误和警告。
当我运行此命令以确认规则的应用时:
./swiftlint lint --config .swiftlint.yml
我收到错误消息:
No lintable files found at paths : ''
请问如何解决此问题?
答案 0 :(得分:2)
如果您将swiftLint与CocoaPods结合使用,请在项目构建阶段在SwiftLint运行脚本中尝试"${PODS_ROOT}/SwiftLint/swiftlint" --config .swiflint.yml
。
确保.swiflint.yml配置文件位于项目目录的根目录中(.xcodeproj文件旁边)。
确保.swiflint.yml中包含的路径(包含在和排除的部分中)是有效路径
确保您的.swiflint.yml文件有效yaml
不要在配置文件中转义目录路径
不要做 - some\ Directory
,但要做 - some Directory
,不要使用转义符。
答案 1 :(得分:1)
对于 0.41 版的 swiftlint,以下代码在构建阶段对我有用(具有多个项目的工作区。根据项目配置,可能必须从路径信息中删除“../”):< /p>
cd ${PROJECT_DIR}/../
"${PODS_ROOT}/SwiftLint/swiftlint" --config "${PROJECT_DIR}/../.swiftlint.yml"
这是构建阶段条目的屏幕截图:
答案 2 :(得分:1)
如果您使用 Cocoapods 安装它,这可以帮助您。 我只会改进上面的答案,以明确如何解决 SwiftLint 找不到路径的问题。
需要注意的事项。
在你的脚本中。
"${PODS_ROOT}/SwiftLint/swiftlint" --path "${SRCROOT}/Classes" --config "directory-of-your-config"
--path 参数应该是你自己的 --path "${SRCROOT}/Classes"
最后在 yml 文件中。
确保您包含和排除的文件规范是正确的,请参阅下面我是如何做的。
included:
- Your-Project-Name
excluded:
- Pods
需要注意的一件重要事情是,如果您在包含的目录下添加目录:--path 参数将被忽略,如果目录错误,您可能会收到“未找到 lintable 文件”错误。
答案 3 :(得分:1)
如果您重命名应用程序的目录也会发生这种情况,请确保在第一行也报告 .swiftlint.yml 中的更改:
included: # paths to include during linting
- My_App_Directory
答案 4 :(得分:0)
首先,如果--config
文件位于运行目录中(运行命令的位置)并且名称为{{1},则无需显式添加yml
文件}。
第二,您需要使用.swiftlint.yml
指定源的路径。下面的命令在您的情况下可以正常使用
--path