自作のライブラリを公開する手順を簡単にまとめてみました。
本記事の目次は以下になります
目次
SPMでの公開方法
大まかな流れ
ざっくりいうとこんな感じです。
ではパッケージ作成からやっていきましょう
上記のPackageからパッケージを作成します。
※外部に公開するため、Git管理されているパッケージを作成しましょう!
作成するとこんな感じになります
今回は、簡単な計算をするライブラリ「CalculationLibrary」とします。
Package.swiftとは
簡単にいうと、「パッケージの依存関係とかを示したマニフェストファイル」です。
この中に依存関係やライブラリの基本情報を書きます。
必要なのは
- name
- products
- targets
の3つです
import PackageDescription
let package = Package(
name: "CalculationLibrary",
products: [
// Products define the executables and libraries a package produces, making them visible to other packages.
.library(
name: "CalculationLibrary",
targets: ["CalculationLibrary"]),
],
targets: [
// Targets are the basic building blocks of a package, defining a module or a test suite.
// Targets can depend on other targets in this package and products from dependencies.
.target(
name: "CalculationLibrary"),
.testTarget(
name: "CalculationLibraryTests",
dependencies: ["CalculationLibrary"]
),
]
)
特筆するところは、
「productの中のlibraryのtargetsにSourceの中の実際にソースが入っているディレクトリを指定する」
くらいです。
何を言ってるかわからないかもしれませんが、後ほど画像を貼るので一旦そういうものだと理解してください。
Source
ここにはライブラリのソースコードが格納されます。
実際に書いてみましょう。今回は足し算と引き算のメソッドを記入してみました。
import Foundation
public class CalculationLibrary {
public init() {}
public func add(_ a: Int, _ b: Int) -> Int {
return a + b
}
public func subtraction(_ a: Int, _ b: Int) -> Int {
return a - b
}
}
ソースコードが完成したら、先ほどのPackage.swiftのlibraryにCalculationLibrary
ディレクトリを指定しておきましょう。
これでパッケージは完成です。
次に公開の手順に移ります。
公開
公開にあたって、ライセンスを発行する必要があります。
その発行手順について説明します。
Add file ⇨ LICENSE ⇨ Choose a license template
ライセンスは練習であればMITでいいと思います。
選択するとこんな感じ
ライセンスをmainに反映して、タグをつけたら完成!
実際にインストールしてみる
新規でプロジェクトを作成
画像の赤枠からパッケージを追加
githubのurlを入れて、addするだけ
https://github.com/IshidaMichitaka/CalculationLibrary
今回はタグではなく、mainブランチをパッケージとして取り込むようにしました。
成功するとこんな感じ
ちゃんと使えてひとまず安心
cocoapodsでの公開方法
大まかな流れ
SPMで公開した前提で今回は進めていきます!
podspecファイルの作成
1.まずはcocoapodsをインストールしましょう
sudo gem install cocoapods
2.podspecファイルを作成する
cd "your library path"
pod spec create "ライブラリの名前"
3.podspecファイルの中身を修正する
Pod::Spec.new do |spec|
spec.name = "CalculationLibrary"
spec.version = "1.0.0" #自作したライブラリのバージョン x.x.xの形で記載する
spec.summary = "CalculationLibrary in swift"
spec.homepage = "https://github.com/IshidaMichitaka/CalculationLibrary"
spec.swift_versions = "5.0"
spec.description = <<-DESC
This is MyLib Description.
DESC
spec.license = "MIT" #先ほどgitで作成したライセンスに合わせる
spec.author = { "名前" => "メルアド" } #自分のものに変更する
spec.platform = :ios, "12.0"
spec.source = { :git => "https://github.com/IshidaMichitaka/CalculationLibrary.git", :tag => "#{spec.version}" }
spec.source_files = "Sources/**/*.swift" #ソースコードのファイルを指定
spec.exclude_files = "Sources/**/Info.plist" #info.plistがここに格納されている場合のみ記述する
spec.requires_arc = true
end
実際には自分のものとは違う可能性が高いので、随時修正してもらえると嬉しいです
文法チェック
.podspecが完了したら、下記を実行してcocoapodsに登録できるかを確認してみましょう!
pod lib lint
ライブラリ登録、公開
最後に、ライブラリを登録し、公開する手順を紹介します。
1.開発者登録をしましょう
pod trunk register {メールアドレス} 'name'
指定したメールアドレスに認証のメールが届くので承認してください。
2.ライブラリを登録
pod trunk push {ライブラリ名}.podspec --allow-warnings
--allow-warningsで警告を無視してライブラリ登録をすることができます。
ライブラリのバージョンをあげ、更新するときもこのコマンドを使用するので覚えておきましょう。
3.タグ付
最後にgitのタグをつけて終わりです🎉🎉🎉🎉🎉
実際にインストールしてみる
1.新規でプロジェクトを作成
2.新規プロジェクトのディレクトリでpod init
pod init
3.作成されたpodfileに下記を入れる
target 'ImportMyLibraryFromCocoapod' do
use_frameworks!
pod 'CalculationLibrary', '~> 1.0.0'
end
4.ライブラリをインストール
pod install
参考文献