swift 代码规范

一、SwiftLint 简介

SwiftLint 是一个用于检查 Swift 代码规范与风格的静态分析工具。

它能够帮助团队:

  • 统一代码风格

  • 提前发现潜在问题

  • 减少 Code Review 成本

  • 提高代码可维护性

  • 规范团队开发习惯

二、SwiftLint 安装方式

CocoaPods 安装

pod 'SwiftLint'

pod install

三、项目中集成 SwiftLint

执行方式

bash 复制代码
Pods/SwiftLint/swiftlint

1、创建配置文件

项目根目录创建:

.swiftlint.yml

bash 复制代码
baseline: .swiftlint-baseline.json

included:
  - Runner
  - gitsubmodules

excluded:
  - Pods
  - gitsubmodules/*/Pods
  - gitsubmodules/**/Pods
  - Flutter
  - FlutterFrameworks
  - build
  - flutter_module
  - DerivedData
  - "**/Mocks/*"
  - .swiftlint.yml
  - lefthook.yml
  - swiftlint_diff.sh

disabled_rules:
  - trailing_whitespace
  - line_length
  - type_body_length
  - file_length
  - function_body_length
  - cyclomatic_complexity
  - identifier_name
  - force_cast
  - force_try
  - todo

opt_in_rules:
  - empty_count
  - closure_spacing
  - explicit_init
  - redundant_nil_coalescing
  - sorted_imports

force_unwrapping:
  severity: warning

unused_optional_binding:
  severity: warning

large_tuple:
  warning: 3
  error: 4

custom_rules:  # 自定义规则
  chinese_hardcoded_string:
    name: "字符串硬编码"
    regex: '(?m)^(?![^\n]*(?:\bFileLog\.\w+\s*\(|\bprint\s*\(|\bdebugPrint\s*\())[^\n]*(#*"[^"\n]*[\u4e00-\u9fff][^"\n]*"#*)'
    excluded_match_kinds:
      - comment
      - doccomment    # 排除 /// 文档注释 
    capture_group: 1
    message: "请勿在 Swift 代码中使用中文字符串,请使用 i18n 资源。"
    severity: error
    included:
      - ".*\\.swift"

reporter: "xcode"

执行命令行 在主工程生成.swiftlint-baseline.json基线避免对历史代码产生副作用

bash 复制代码
#write_baseline: .swiftlint-baseline.json 
Pods/SwiftLint/swiftlint lint --config .swiftlint.yml 
#baseline: .swiftlint-baseline.json

四、Xcode 集成

1、添加 Run Script

Target -> Build Phases -> + -> New Run Script Phase

bash 复制代码
if [ "${CONFIGURATION}" = "Debug" ]; then
  if [ -x "${PODS_ROOT}/SwiftLint/swiftlint" ]; then
    "${PODS_ROOT}/SwiftLint/swiftlint" --config "${SRCROOT}/.swiftlint.yml"
  else
    echo "warning: SwiftLint not found. Run pod install first."
  fi
fi

2、Build 时自动检查

每次编译时:

  • 自动检查代码规范

  • 在 Xcode Warning 中显示问题

  • 提前发现潜在风险

相关推荐
软泡芙1 天前
【IOS】 Swift Package Manager (SPM) 指南
网络·ios·swift
东坡肘子2 天前
不是模型变慢了,是任务变大了 -- 肘子的 Swift 周报 #146
人工智能·swiftui·swift
hoLzwEge2 天前
CLAUDE.md:为 Claude Code 注入项目记忆
深度学习·程序员·代码规范
大龄秃头程序员2 天前
Sendable 不是“能跑就行”:Swift Concurrency 下的实战踩坑与架构落地指南
swift
咩咩啃树皮2 天前
第47篇:Vue3项目工程化极致优化——从零搭建企业级规范、性能调优、代码规范、打包提速
代码规范
大熊猫侯佩3 天前
WWDC26 全新 SwiftData 的 .codable 宏选项:它不是泛型专用胶水
数据库·swift·apple
大龄秃头程序员3 天前
Swift 并发实战:从 Task 到 Actor 重入性,我掉进了“逻辑不一致”的坑
swift
LinXunFeng3 天前
给 Flutter 插件加上 Swift Package Manager 支持
flutter·swift
kisshyshy3 天前
《端侧大模型(三)“精装修”日记:进度条整容、聊天框首秀》
react.js·typescript·代码规范