Swift 實用工具—SwiftLint
前言
SwiftLint 是一個實用工具,用于實現 Swift 的風格。在 Xcode 項目構建階段,集成 SwiftLint 很簡單,構建階段會在編譯項目時自動觸發 SwiftLint。
遺憾的是,目前無法輕松地將 SwiftLint 與 Swift Packages 集成,Swift Packages 沒有構建階段,也無法自動運行腳本。
本文介紹了如何在 Xcode 中使用 post action 腳本在成功編譯 Swift Package 后自動觸發 SwiftLint。
SucceedsPostAction.sh
SucceedsPostAction.sh 是一個 bash 腳本,用作 Xcode 中的 “Succeeds” 發布操作。當你編譯一個 Swift 包時,這個腳本會自動觸發 SwiftLint。
安裝
- 在 Mac 上下載腳本 SucceedsPostAction.sh。
- 確保腳本具有適當的權限,即運行 chmod 755 SucceedsPostAction.sh。
- 如果要使用自定義 SwiftLint 規則,請將 .swiftlint.yml 文件添加到腳本旁邊。
- 啟動 Xcode 13.0 或更高版本
- 打開 Preferences > Locations 并確保 Command Line Tools 設置為 Xcode 版本
- 打開 Preferences > Behaviors > Succeeds
- 選擇腳本 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[1],Swift 5.6(在撰寫本文時尚不可用)可能會有所幫助。集成 SE-0303 后,不再需要此腳本。