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 中显示问题

  • 提前发现潜在风险

相关推荐
瓦瓦gogo12 小时前
第一次了解 iOS 开发:从 Swift、SwiftUI 到公共组件
ios·swiftui·swift
爱聊灵光的维C19 小时前
C语言初阶:关于函数设计的详细讲解和注意事项
c语言·开发语言·青少年编程·蓝桥杯·学习方法
ZhengEnCi1 天前
如何审核 AI 生成的代码:一份可落地的 6 层检查清单
ai编程·代码规范
青峰讲运维2 天前
OpenStack 存储深度解析|Cinder 块存储 + Swift 对象存储原理与完整实操(Yoga)
开发语言·openstack·swift
2501_915106322 天前
Windows 上开发 Unity iOS,使用 KXBuild 进行真机调试、性能采样与打包 ipa
windows·vscode·unity·ios·个人开发·swift·敏捷流程
挖掘狂人2 天前
AI 代码上线前,真正的瓶颈不在 "写",而在 "验"
ai编程·测试·代码规范
深圳老胡2 天前
STM32C5A3ZG 网络调试总结:从启动失败到连续 Ping 稳定
笔记·stm32·单片机·代码规范
2501_915918413 天前
Windows 上开发 React Native iOS,真机调试、Fast Refresh 与打包 ipa
windows·vscode·react native·ios·个人开发·swift·敏捷流程
big男孩3 天前
autocode 使用指南
代码规范
szp20053 天前
中文字幕烧进视频后整片空白:CoreText 低报行高,导出照样成功
ios·swift