Swift Package ManagerでCLIツールを作る最小構成
Swiftで小さなCLIツールを作るなら、Swift Package Managerの executableTarget が使えます。
Xcodeプロジェクトを作らなくても、Package.swift と main.swift だけで始められます。
パッケージを作る
mkdir MyTool
cd MyTool
swift package init --type executable
これで実行可能ターゲットを持つパッケージが作られます。
SwiftPMの基本は公式ドキュメントにもまとまっています。
https://www.swift.org/documentation/package-manager/
Package.swift
最小構成はだいたいこうなります。
// swift-tools-version: 6.0
import PackageDescription
let package = Package(
name: "MyTool",
targets: [
.executableTarget(
name: "MyTool"
)
]
)
executableTarget が実行ファイルになるターゲットです。
main.swift
print("Hello, SwiftPM")
Swift 5.3以降なら @main を使う形もあります。
@main
struct MyTool {
static func main() {
print("Hello, SwiftPM")
}
}
小さいツールなら main.swift だけでも十分です。
実行する
swift run
ターゲット名を指定するなら次の形です。
swift run MyTool
ビルドだけなら:
swift build
成果物は .build 以下に出ます。
引数を読む
簡単な引数なら CommandLine.arguments で読めます。
let arguments = CommandLine.arguments.dropFirst()
for argument in arguments {
print(argument)
}
本格的なCLIにするなら、Swift Argument Parserのようなライブラリを使うこともあります。最初は標準の CommandLine で十分です。
まとめ
SwiftでCLIを作るなら、Swift Package Managerのexecutable targetから始めるのが簡単です。
swift package init --type executablePackage.swiftにexecutableTarget- 実行は
swift run - 小さいツールなら
main.swift - 引数は
CommandLine.arguments
ちょっとした変換ツールや開発補助ツールなら、この構成で十分始められます。


