CocoaPods/Specs に Pull Request する

先日気まぐれにUIライブラリっぽいのを作ったので、ついでなので CocoaPods に公開してみました。
手順をメモしておきます。

Pull Request までの手順

podspec ファイルを作る

  • $ pod spec create xxx コマンドで、xxx.podspec ファイルが自動的に生成されます。それをベースに内容を編集します。
  • CocoaPods Guides に基本的な書き方があります。
  • xxx.podspecファイルを作成したら $ pod spec lint (podspecファイルの検証)します。

Specsリポジトリを Fork する

GitHub で CocoaPods/Specs を Fork する

CocoaPods/Specs からリポジトリを Fork します。

specs-pullrequest-01

~/.cocoapods/repos に Fork したレポジトリを clone します。

$ cd ~/.cocoapods/repos
$ git clone https://github.com/myname/Specs.git mynamerepo
# mynameはそれぞれユーザ名など適当なものに置き換えてください
.podspec を push する

# .podspecファイルのあるディレクトリで

$ pod push mynamerepo xxx.podspec

pod push コマンドで、こんな感じのが出力されます。

$ pod push urouro URRRadioGroup.podspec
Validating spec
-> URRRadioGroup (0.1)

Updating the `urouro' repo

Already up-to-date.

Adding the spec to the `urouro' repo

- [Add] URRRadioGroup (0.1)

Pushing the `urouro' repo

To https://github.com/urouro/Specs.git
bda4e34..8f8a01b master -> master

もし podspec のフォーマットが不正で validate が通らなかったらエラーが出ます。
pod push コマンドを走らせる前に、pod spec lint でエラーを取り除いておきましょう。

↑が成功していたら GitHub の自分のリポジトリの Specs に push されています。
後は、自分のリポジトリの Specs から、本家の Specs に Pull Request を送りましょう。

CocoaPods/Specs に Pull Request を投げる

あとは GitHub 上でいくつかの操作をすれば完了です。

pod push によって自分のリポジトリに push されているのを確認します。

specs-pullrequest-02

こんな感じで、自分の作った podspec が Fork したリポジトリにコミットされているのがわかります。

specs-pullrequest-03

本家のリポジトリに Pull Request を送ります。

specs-pullrequest-04

本家の Specs の Requests に追加されたら、あとはマージされるのを待つだけです。

specs-pullrequest-05

ちなみに、大体1日ぐらいで本家にマージされました。

これで、Podfile で
pod 'URRRadioGroup', '~> 0.0.1'
などと記載すれば、pod install でプロジェクトに突っ込めます。便利ですね。

GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)

GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)