Swift 實(shí)用工具—SwiftLint
前言
SwiftLint 是一個(gè)實(shí)用工具,用于實(shí)現(xiàn) Swift 的風(fēng)格。在 Xcode 項(xiàng)目構(gòu)建階段,集成 SwiftLint 很簡(jiǎn)單,構(gòu)建階段會(huì)在編譯項(xiàng)目時(shí)自動(dòng)觸發(fā) SwiftLint。
遺憾的是,目前無法輕松地將 SwiftLint 與 Swift Packages 集成,Swift Packages 沒有構(gòu)建階段,也無法自動(dòng)運(yùn)行腳本。
本文介紹了如何在 Xcode 中使用 post action 腳本在成功編譯 Swift Package 后自動(dòng)觸發(fā) SwiftLint。
SucceedsPostAction.sh
SucceedsPostAction.sh 是一個(gè) bash 腳本,用作 Xcode 中的 “Succeeds” 發(fā)布操作。當(dāng)你編譯一個(gè) Swift 包時(shí),這個(gè)腳本會(huì)自動(dòng)觸發(fā) SwiftLint。
安裝
- 在 Mac 上下載腳本 SucceedsPostAction.sh。
- 確保腳本具有適當(dāng)?shù)臋?quán)限,即運(yùn)行 chmod 755 SucceedsPostAction.sh。
- 如果要使用自定義 SwiftLint 規(guī)則,請(qǐng)將 .swiftlint.yml 文件添加到腳本旁邊。
- 啟動(dòng) Xcode 13.0 或更高版本
- 打開 Preferences > Locations 并確保 Command Line Tools 設(shè)置為 Xcode 版本
- 打開 Preferences > Behaviors > Succeeds
- 選擇腳本 SucceedsPostAction.sh
就是這樣:每次編譯 Swift 包時(shí),SucceedsPostAction.sh 都會(huì)運(yùn)行 SwiftLint。
Demo
限制
在 Xcode 中運(yùn)行的 post action 腳本無法向 Xcode 構(gòu)建結(jié)果添加日志、警告或錯(cuò)誤。因此,SucceedsPostAction.sh 在 Xcode 中以新窗口的形式打開一個(gè)文本文件,其中包含 SwiftLint 報(bào)告列表。沒有深度集成可以輕松跳轉(zhuǎn)到 SwiftLint 警告。
Swift 5.6
請(qǐng)注意,由于SE-0303: Package Manager Extensible Build Tools[1],Swift 5.6(在撰寫本文時(shí)尚不可用)可能會(huì)有所幫助。集成 SE-0303 后,不再需要此腳本。