2

前言

SwiftLint 是一个实用工具,用于实现 Swift 的风格。 在 Xcode 项目构建阶段,集成 SwiftLint 很简单,构建阶段会在编译项目时自动触发 SwiftLint。

遗憾的是,目前无法轻松地将 SwiftLintSwift Packages 集成,Swift Packages 没有构建阶段,也无法自动运行脚本。

本文介绍了如何在 Xcode 中使用 post action 脚本在成功编译 Swift Package 后自动触发 SwiftLint。

SucceedsPostAction.sh

SucceedsPostAction.sh 是一个 bash 脚本,用作 Xcode 中的 “Succeeds” 发布操作。当你编译一个 Swift 包时,这个脚本会自动触发 SwiftLint

安装

  1. 在 Mac 上下载脚本 SucceedsPostAction.sh
  2. 确保脚本具有适当的权限,即运行 chmod 755 SucceedsPostAction.sh
  3. 如果要使用自定义 SwiftLint 规则,请将 .swiftlint.yml 文件添加到脚本旁边。
  4. 启动 Xcode 13.0 或更高版本
  5. 打开 Preferences > Locations 并确保 Command Line Tools 设置为 Xcode 版本
  6. 打开 Preferences > Behaviors > Succeeds
  7. 选择脚本 SucceedsPostAction.sh

就是这样:每次编译 Swift 包时,SucceedsPostAction.sh 都会运行 SwiftLint。

Demo

限制

在 Xcode 中运行的 post action 脚本无法向 Xcode 构建结果添加日志、警告或错误。因此,SucceedsPostAction.sh 在 Xcode 中以新窗口的形式打开一个文本文件,其中包含 SwiftLint 报告列表。没有深度集成可以轻松跳转到 SwiftLint 警告。

Swift 5.6

请注意,由于SE-0303: Package Manager Extensible Build Tools,Swift 5.6(在撰写本文时尚不可用)可能会有所帮助。集成 SE-0303 后,不再需要此脚本。

下载

您可以在 Github 上找到最新版本的脚本 SucceedsPostAction.sh

关于我们

Swift社区是由 Swift 爱好者共同维护的公益组织,我们在国内以微信公众号的运营为主,我们会分享以 Swift实战SwiftUlSwift基础为核心的技术内容,也整理收集优秀的学习资料。

特别感谢 Swift社区 编辑部的每一位编辑,感谢大家的辛苦付出,为 Swift社区 提供优质内容,为 Swift 语言的发展贡献自己的力量。


Swift社区
11.9k 声望3.8k 粉丝

我们希望做一个最专业最权威的 Swift 中文社区,我们希望更多的人学习和使用Swift。我们会分享以 Swift 实战、SwiftUI、Swift 基础为核心的技术干货,欢迎您的关注与支持。