三大サンダー!

ブログです

SwiftPackageManagerを使うための覚書

以前SwiftPackageManagerを利用してライブラリを作成したことがあったが、使い方をすっかり忘れてしまったため覚書として使い方のメモを残しておくことにする。

プロジェクトディレクトリの作成

SwiftPackageMamagerにはプロジェクトディレクトリを作成してくれる機能は無いため自前でプロジェクトディレクトリを作成しておく必要がある。

ディレクトリを作成したら、そのディレクトリに移動してSwiftPackageManagerの初期化を行っていくことになる。

mkdir /path/to/Project
cd /path/to/Project

初期化

swift package init --type [empty|library|executable|system-module]というコマンドを実行することでプロジェクトのスケルトンを生成することができる。

--typeに指定したオプションによって生成されるスケルトンが異なってくる。
生成内容はそれぞれ下記の通り。

オプション 生成物
empty 空のプロジェクトスケルトンが生成される、用途的に使うことはほぼ無いのではないか?
library 他のSwiftプロジェクトから利用可能なライブラリを生成するためのスケルトンが生成される。
executable 実行可能なコマンドのためのスケルトンが生成される。
system-module システムモジュールを生成するためのスケルトンが生成される。

SwiftPackageManagerでビルドを行うには特定のプロジェクト内構造を持つ必要がある。
この構造を自分で考えるコストが必要になるemptyオプションは基本的に利用するケースが無いように思われる。

Xcodeプロジェクトの生成

swift package initでプロジェクトの初期化を行うと開発が行えるようになる。
通常、Swiftの開発にはXcodeを利用するため*1Xcodeのプロジェクトファイルを生成する必要がある。

Xcodeプロジェクトの生成は下記のコマンドを実行すれば良い。

swift package generate-xcodeproj

コマンドを実行すると、[ProjectDirName].xcodeprojという設定が生成されるので、これをXcodeから開けばXcodeを利用して開発を行うことができる。


以前使ったときはテストコマンドやビルドコマンドもあったような記憶があるのだが、どうも無くなってしまっているようだ*2
ブログに書いたことで次に利用する時はすんなり使えるようになっているとよい。

*1:AppCodeを利用するケースも一定数あるが、AppCodeのプロジェクト設定はXcode互換のため区別する必要は無いだろう。

*2:無くなったのが私の記憶なのかSwiftPackageManagerの機能なのか定かではないが…