透過 Swift Pacakage Manager 使用 Apple 的 swift-format
最近開始把相依的工具能盡量收進 Swift Package Manager 就收進去,這次的對象是 swift-format
。由於這篇是一個快速的筆記文,因此會省略掉很多細節。
執行環境
- Xcode: 12.0(12A7209)
- Swift: 5.3
swift-format
GitHub 主頁面:
Apple 官方的針對 Swift 調整格式以及 lint 工具,原先可以透過 brew 來安裝
缺點
iOS 的專案可以用許多相依管理工具,於是時間一長,就會發現單一個專案裡面就已經多種並用,例如
- Homebrew
- CocoaPods
- Carthage
- Mint
- RubyGems
多工具導入之下造成管理不便, CI 的工作流程也必須全部跑過一次。有的是專案範圍的相依,有的是系統範圍的相依,感覺真的不是很好。
對策
雖然無法 100% 摒除,策略上就以能用原生 Swift Package Manager 的話就用為主要的方向。
導入專案
Package.swift
swift-format
是 cli 工具,因此導入非常簡單,只要在 dependencies
中加入,也不需要加入任何的 target
1 | // swift-tools-version:5.3 |
執行方式
由於要執行 Swift Pacakage Manager 的範圍的 cli 工具,因此要加上 swift run
,避免執行到原本用 Homebrew 裝的版本。和 RubyGems 的 bundle exec
有異曲同工的作用。
1 | swift run swift-format |
後面的一些 options 就和原先的執行方式一樣,所以在 CI 的執行設定基本上只要加上 swift run
即可。