今回作るもの
今回はSwift Package Manager(以下SPM)の作成にチャレンジしてみましたので、作成方法から使用方法を体験的に学べるようご紹介したいと思います。
そもそもSPMってなに?と言う方はこちらを一読される事をおすすめします!
記事見る時間が無い。
と言う方には"SPMは、Swiftコードの配布を管理するためのツールで、手軽に自作したライブラリを公開したり、使用したりできるAppleの純正ツール"ぐらいでOKかと。
では
・SPM作成
・SPM公開
・SPM使用
のたった3工程でSPMを作って使う!!方法をご紹介していきます。
環境
・ macOS Monterey : 12.0
・ Xcode : 13.0
SPM作成
まずXcodeを起動します。
続いてFile→New→Packageを選択します。
初期画面が表示されるのでSave Asにてファイル名を指定します。(今回は初期設定のまま使用しています。)
今回はこのままプロジェクトに入れずPackageを作りますが、Add toにプロジェクトを指定すると直接Packageに入れる事ができます。
(直接入れるとPackageがプロジェクトに下記のように追加されます。)
たったこれだけでPackageの作成ができます。
Xcode13.0ではMyLibrary.swiftに以下のようなコードがデフォルトであります。
public struct MyLibrary {
public private(set) var text = "Hello, World!"
public init() {
}
}
今回は上記を以下のように変更します。
import SwiftUI
@available(iOS 13.0, *)
public struct MyLibrary: View {
public init() {
}
public var body: some View {
HStack {
Image(systemName: "star.fill")
Text("初めてのSPM")
}
}
}
上記のコードは星のImageとTextを横一列に表示させるコードです。
またここではpublic init()でイニシャライザを指定しておかないと下記のエラーが出てきます。
'MyLibrary' initializer is inaccessible due to 'internal' protection level
これでSPMは完成です。
SPM公開
続いて公開していきます。
公開はシンプルにGitHubにタグをつけて公開するだけです。
commitとpushで行えます。(commit、pushがわからない人はコチラをどうぞ!!)
タグ付けはターミナルで
git tag 1.0.0
以上で公開の手順は終了です。
(以下Tips)
Tips
Source Control→Create Git Repositoriesにてローカルリポジトリを作成し
project→New "プロジェクト名" RemoteからGitHubとXcodeを連携させる事ができます。
これでXcode内でcommit、pushを行うことができます。
(非常に参考になる記事がありますのでご紹介させて頂きます)
SPM使用
最後に先ほど作成してGitHubに公開したSPMを使用していきます。
File→Add Packages...を選択します。
作成したリポジトリのURLもしくはSSHを入力してAdd PackageでPackageの追加を行います。
無事追加できれば以下のようにNavigator Areaに追加されます。
後は以下のようにimportして使用します。
import SwiftUI
import MyLibrary
struct SwiftPakageManagerSampler: View {
var body: some View {
MyLibrary()
}
}
struct SwiftPakageManagerSampler_Previews: PreviewProvider {
static var previews: some View {
SwiftPakageManagerSampler()
}
}
まとめ
いかがでしたでしょうか?たった3工程で簡単にSPMの作成、公開、使用と一通りできるのは非常に良いと思います^^
また標準機能で使用できるので作成から使用までシームレスにできる点も非常に良いと思いましたので今後ガシガシ使用していきたいなと思います!!