Xcode 11から、macOSアプリでもSwift Package Managerを使えるようになった。Xcodeで直接操作できる分、CocoaPodsやCarthageよりも便利で快適なので、自作のライブラリも全てSwift Package Managerに対応させることにした。
といっても、やることはPackage.swiftを追加するだけ。
https://github.com/apple/swift-package-manager/blob/master/Documentation/Usage.md
Package.swiftは手動で追加しても問題ないが、swift package init
コマンドを使うと、テストなど込みで作成してくれる。
標準では[Sources/パッケージ名
]ディレクトリ以下にライブラリのファイルが配置されていることが期待される。それ以外の場所に起きたい場合はtargetのpathを明示的に指定することで変更できる。
targets: [
// Targets are the basic building blocks of a package. A target can define a module or a test suite.
// Targets can depend on other targets in this package, and on products in packages which this package depends on.
.target(
name: "Gotanda",
dependencies: [],
path: "Sources"),
.testTarget(
name: "GotandaTests",
dependencies: ["Gotanda"]),
]
swift build
をして問題なかったら、あとは自分のレポジトリにPushするだけでOK。バージョン管理したい場合は、tagを切ってあげれば良い。
他のパッケージ同様、Add Package Dependencies...
でレポジトリのURLを入力すると、無事パッケージを追加することができた。