「Swift Packagesによるライブラリの作成方法」は4部構成です。
記事を順番に読み進めると、Swift Packagesでライブラリを自作して公開できるようになります。
- 第1部: Swift Packagesでライブラリを自作する
- 第2部: 自作パッケージをSwift Package Indexに追加する ←イマココ
- 第3部: 自作パッケージをCocoaPodsに追加する
- 第4部: 自作パッケージをCarthageに対応する
「Swift PackagesによるCLIツールの作成方法」は5部構成です。
記事を順番に読み進めると、Swift PackagesでCLIツールを自作して公開できるようになります。
第1部: Swift PackagesでCLIツールを自作する
第2部: 自作パッケージをSwift Package Indexに追加する ←イマココ
第3部: 自作パッケージをMintに対応する
第4部: 自作パッケージをHomebrewに追加する(未投稿)
第5部: 自作パッケージをCocoaPodsに追加する(未投稿)
はじめに
自作パッケージをSwift Package Indexに追加する方法を紹介します。
「Swift Package Index」とは?
公式サイトのFAQを直訳すると「Swift Package Managerをサポートする、パッケージの検索エンジン」です。
パッケージを検索して、そのパッケージに関する様々な情報を得ることができるサイトです。
環境
- OS: macOS Sonoma 14.2.1
- Xcode:15.3 (15E204a)
- Swift:5.10
- swift-tools:5.10
Swift Package Indexへの追加方法
Swift Package IndexへはPRを作成して手動で追加を依頼する必要があるので、その手順を紹介します。
(2024/04/20, 追記)
PRでなくIssueを作成する方法に変わっていたので、記事を全体的に修正しました。
パッケージを自作する
Swift Package Indexへは他人が作成したパッケージを追加することもできるようですが、やはり自作パッケージがなければ始まりません。
以下の記事を参考にパッケージを自作します。
Issueを作成する
パッケージを自作したら、以下のページから「Add Package(s)」を選択してIssueを作成します。
IssueのタイトルとリポジトリのURLを入力し、「Submit new issue」を押下します。
- Add a title
- Issueのタイトルを書く。
Add {パッケージ名}
とする
- Issueのタイトルを書く。
- New Packages
- リポジトリのURLを書く
Issueが作成されます。
PRをApproveする
入力した情報を元にbotがPRを作成するので、リンクを押下して開きます。
内容を確認し、問題なければ「Approve」を選択して「Submit review」を押下します。
問題なければメンバーの方がマージしてくださります。
私の場合は数分でマージされました。
Swift Package Indexでできること
PRがマージされたらSwift Package Indexに自作パッケージのページができます
Swift Package Indexでできることを抜粋して紹介します。
様々な環境でビルドしてバッジ化される
様々なプラットフォーム、Swiftのバージョン、ソース(最新タグとデフォルトブランチ)の組み合わせでビルドし、成否とログを確認できます。
CIが成功してからパッケージをリリースすることが多いとは思いますが、すべての組み合わせを網羅することはなかなかないので、非常にありがたいです。
ビルドに成功した環境がバッジ化されるので、READMEに付けるとどの環境で使えるかがすぐにわかります。
ちなみに新しいバージョンをリリースしたら自動で再ビルドしてくれます。
手動でリリースを伝える必要はありません。
同じ作者で他のパッケージを見れる
Xcode 13で追加された「Package Collections」という仕組みがあり、複数のパッケージをJSONファイルにまとめることでパッケージを探しやすくなります。
Swift Package Indexでは同じ作者のパッケージをまとめたコレクションのJSONファイルを自動で作成してくれます。
その場でパッケージを試せる
「Try in a Playground」をクリックすることで、パッケージがセットアップされた状態でPlaygroundが起動し、すぐにパッケージを試すことができます。
spi-playgrounds://open?dependencies=uhooi/swift-string-transform
事前にSwift Package Index Playgrounds appをインストールする必要があります。
おわりに
自作パッケージをSwift Package Indexに追加することができました!
自分のパッケージが素晴らしいサイトに載るのはとても嬉しいです
Swift Package Indexは非常に便利なサイトなので、パッケージを自作していない人もぜひ活用してみてください!