9
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[iOS Swift] ライブラリを作って公開してみた!

Posted at

自作のライブラリを公開する手順を簡単にまとめてみました。
本記事の目次は以下になります

目次

SPMでの公開方法

大まかな流れ

スクリーンショット 2025-01-05 20.22.02.png

ざっくりいうとこんな感じです。
ではパッケージ作成からやっていきましょう

スクリーンショット 2025-01-05 20.26.19.png

上記のPackageからパッケージを作成します。
※外部に公開するため、Git管理されているパッケージを作成しましょう!

作成するとこんな感じになります
今回は、簡単な計算をするライブラリ「CalculationLibrary」とします。

スクリーンショット 2025-01-05 21.09.41.png

Package.swiftとは

簡単にいうと、「パッケージの依存関係とかを示したマニフェストファイル」です。
この中に依存関係やライブラリの基本情報を書きます。

必要なのは

  • name
  • products
  • targets

の3つです

Package.swift
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


ここにはライブラリのソースコードが格納されます。
実際に書いてみましょう。今回は足し算と引き算のメソッドを記入してみました。

CalculationLibrary.swift
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ディレクトリを指定しておきましょう。

スクリーンショット 2025-01-05 21.09.41.png

これでパッケージは完成です。
次に公開の手順に移ります。

公開

公開にあたって、ライセンスを発行する必要があります。
その発行手順について説明します。

Add file ⇨ LICENSE ⇨ Choose a license template

スクリーンショット 2025-01-05 21.24.25.png

スクリーンショット 2024-12-28 16.46.08.png

ライセンスは練習であればMITでいいと思います。
選択するとこんな感じ

スクリーンショット 2024-12-28 16.50.13.png

ライセンスをmainに反映して、タグをつけたら完成!

実際にインストールしてみる

新規でプロジェクトを作成
画像の赤枠からパッケージを追加

スクリーンショット 2024-12-28 20.08.29.png

githubのurlを入れて、addするだけ
https://github.com/IshidaMichitaka/CalculationLibrary
今回はタグではなく、mainブランチをパッケージとして取り込むようにしました。

スクリーンショット 2024-12-28 20.08.55.png

成功するとこんな感じ
ちゃんと使えてひとまず安心:relaxed:

スクリーンショット 2025-01-05 21.36.04.png

cocoapodsでの公開方法

大まかな流れ

SPMで公開した前提で今回は進めていきます!

スクリーンショット 2025-01-05 22.43.26.png

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

成功するとこんな感じになります
スクリーンショット 2025-01-05 23.13.05.png

ライブラリ登録、公開

最後に、ライブラリを登録し、公開する手順を紹介します。

1.開発者登録をしましょう

pod trunk register {メールアドレス} 'name'

指定したメールアドレスに認証のメールが届くので承認してください。

2.ライブラリを登録

pod trunk push {ライブラリ名}.podspec --allow-warnings

--allow-warningsで警告を無視してライブラリ登録をすることができます。
ライブラリのバージョンをあげ、更新するときもこのコマンドを使用するので覚えておきましょう。

成功した場合
スクリーンショット 2025-01-05 23.18.37.png

3.タグ付
最後にgitのタグをつけて終わりです🎉🎉🎉🎉🎉

実際にインストールしてみる

1.新規でプロジェクトを作成
2.新規プロジェクトのディレクトリでpod init

pod init

3.作成されたpodfileに下記を入れる

target 'ImportMyLibraryFromCocoapod' do
  use_frameworks!
  pod 'CalculationLibrary', '~> 1.0.0'
end

4.ライブラリをインストール

pod install

成功したらこんな感じ!
スクリーンショット 2025-01-05 23.23.36.png

実際にインストールしてみるとこんな感じ!
動いた!
スクリーンショット 2025-01-05 23.31.19.png

参考文献

9
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?