お手軽にCocoaPodsでライブラリを公開する(podspecをPull Requestする手順)
CocoaPodsでのライブラリ公開
Objective-CなライブラリはCocoaPodsにてインストールする事が殆どですが、
CocoaPods でライブラリを公開するにはライブラリの定義ファイルであるpodspecを、
CocoaPods/SpecsにPullRequestして取り込んで貰う必要があります。
Contributing to the master repo · CocoaPods/CocoaPods Wiki の手順に乗っ取って普通に手動でやっても問題無いですが、更新の度にやるのは結構面倒です。
そこで、CocoaPodsのサブコマンドの pod push
をつかってやる手順についての記事です。
pod push
必要なもの
- CocoaPods
- github/hub
pod help push
で見るとわかりますが、pod push
は単純に指定したspecファイルをlintにかけて、gitリポジトリ(REPO)にpushしてくれるコマンドです。
$ pod push REPO [NAME.podspec]
Validates NAME.podspec or `*.podspec' in the current working dir, creates
a directory and version folder for the pod in the local copy of
REPO (~/.cocoapods/repos/[REPO]), copies the podspec file into the version
directory, and finally it pushes REPO to its remote.
デフォルトだと、~/.cocoapods/repos/[REPO]
には master しか無いと思うので、自分用の [REPO] ディレクトリを追加していきます。
既に、Github上にazu/Specsのようなforkしたリポジトリがあるなら以下のような感じに下準備します。
(azu は各自適当に)
# ~/.cocoapods/repos/ で行う
# forkした CocoaPods/Specs を 適当な名前(今回はazu)のディレクトリにcloneしてくる。
# cloneしたら、remoteにCocoaPods/Specsも追加しておく(pull-request用)
cd ~/.cocoapods/repos/
git clone [email protected]:azu/Specs.git azu && cd azu && hub remote add CocoaPods/Specs
そして、追加したい podspecがあるディレクトリに行って、以下のような感じで、azu/Specs への
podspecをコミット -> push -> CocoaPods/Specs へpullrequestします。
( --git-dir=
で指定してるのは、各自追加した自分の[REPO]です)
# 追加したいpodspecをまず自分のリポジトリにpushする
pod push azu 追加したい.podspec
# 自分のリポジトリをpullrequestする
hub --git-dir=/Users/azu/.cocoapods/repos/azu/.git pull-request -b CocoaPods:master -h master
後は、PullRequestの文章を入力すれば、CocoaPods/SpecsへPullRequestされて、取り込まれればCococaPodsでの公開は完了です。
podspecを指定して自動的にルールに従った配置に追加してpushするコマンドとして、cocoapods-publisherというのもありますが、 pod push
の方がLintも書けてくれて公式のコマンドなので、こちらを利用したほうがいいでしょう。
おまけ
CocoaPods経由でインストールするには必ずしもCocoaPodsにPull Requestして取り込んで貰う必要はなくて、野良リポジトリでも問題無く出来ます。
やり方は色々ありますが、シンプルでやりやすいのは、azu/AZDateBuilder のように Gitリポジトリのルートに podspec
ファイルを配置して、以下のように :git
シンボルを指定するだけでインストールできます。
(毎回ダウンロードが走りますが)
pod 'AZDateBuilder', :git => 'https://github.com/azu/AZDateBuilder.git'
お知らせ欄
JavaScript Primerの書籍版がAmazonで購入できます。
JavaScriptに関する最新情報は週一でJSer.infoを更新しています。
GitHub Sponsorsでの支援を募集しています。