iOS SwiftLint identifier_name规则修改后不生效问题排查求助
问题根因
你修改的identifier_name规则仅作用于变量、常量、函数、参数等非类型标识符,类、结构体、枚举、协议等类型的命名校验由独立的type_name规则负责,这是配置不生效的核心原因。你测试代码中timeVC小写开头的类名触发的是type_name规则的默认校验,和identifier_name的配置无关。
解决方案
根据你的需求选择对应方案:
方案1:遵循标准Swift命名规范(推荐)
标准CamelCase命名规范本身要求类型(类、结构体等)使用大驼峰(首字母大写),成员(变量、函数等)使用小驼峰(首字母小写),你只需将类名timeVC修改为TimeVC即可消除报错,无需修改任何配置。
方案2:自定义允许小写开头的类型名
如果确实需要支持小写开头的类型名,你需要在.swiftlint.yml中新增type_name规则的配置:
type_name: validates_start_with_uppercase: false min_length: warning: 1
其他配置生效校验排查项
如果修改配置后仍不生效,可以按以下顺序排查:
- 确认
.swiftlint.yml文件存放在项目根目录,和你执行SwiftLint命令的路径一致,Xcode集成的话要确认Run Script阶段的SwiftLint脚本路径指向正确 - 改完配置后清理Xcode缓存(快捷键
Command+Shift+K)后重新构建,避免旧校验缓存导致的误报 - 如果你使用的是较新版本的SwiftLint,可以执行
swiftlint rules type_name命令查看当前版本支持的所有配置参数,避免参数名变更导致的配置失效
内容的提问来源于stack exchange,提问作者trianglejerry00
相关产品推荐
相关产品推荐

