最近実践したiOSのOSSライブラリ作成・運用方法まとめ その2〜公開編〜

2016.07.31

おばんです、引越しのため実家の掃除をしていると色々出てきて、自分の加齢を感じてMPが削れていっている田中です。

ライブラリ作成方法まとめのその2です。
今回はライブラリの公開に関して。

公開する

今回はCocoaPodsでの公開方法です。
手順は以下を参考にさせていただきました。ここでは紹介しないことも書いてあるので必読です。

podspecファイルを用意する

podspecを書く

以下はpodspecファイルのサンプルです。
.podspecというファイルを作って、ライブラリのディレクトリルートに置きます。

Pod::Spec.new do |s|

  s.name         = "ScrollingFollowView"
  s.version      = "0.1.0"
  s.summary      = "A simple view follows scrolling."
  s.description  = <<-DESC
                   A simple view follows scrolling.
                   More information is coming soon...
                   DESC

  s.homepage     = "https://github.com/ktanaka117/ScrollingFollowView"
  s.license      = "MIT"
  s.author             = { "Kenji Tanaka" => "key_m4096_kung_fu@yahoo.co.jp" }
  s.social_media_url   = "http://twitter.com/ktanaka117"

  s.platform     = :ios, "8.0"

  s.source       = { :git => "https://github.com/ktanaka117/ScrollingFollowView.git", :tag => s.version.to_s }

  s.source_files  = "ScrollingFollowView/**/*.swift"

end
  • name : ライブラリの名前。
  • version : ライブラリのバージョン。
  • summary : ライブラリのまとめ文。
  • description : ライブラリの説明文。
  • homepage : ライブラリに関連するWebのURL。
  • license : ライブラリのライセンス。
  • author : ライブラリの作者
  • social_media_url: ライブラリに対応するソーシャルのURL。
  • platform : ライブラリが対応するプラットフォーム情報。
  • source : ライブラリの置き場所。
  • source_files : ライブラリのソースファイルのディレクトリパス。

pod lib lint

$ pod lib lint <LibraryName>.podspec

podspecファイルに不備がないかチェックします。

pod trunk register

$ pod trunk register <mailaddress> 'username' --description='macbook air'

CocoaPodsの認証とAPIアクセスを扱えるCocoaPods Trunkにデバイス情報を登録する処理。
まず初回アクセスのデバイスである場合はここで登録します。

pod trunk push

$ pod trunk push <LibraryName>.podspec

CocoaPodsにpodspecをpushしてライブラリをCocoaPodsに登録します。
CocoaPods経由でライブラリをインストールできるようにするにはこのpod trunk pushでCocoaPodsにpodspecの登録が必要です。これができたら公開完了!
アップデートの際もこれで更新したpodspecをpushします。

タグ

タグをつける

$ git tag 0.0.1

ローカルに指定のタグをつける

$ git push origin 0.0.1

リモートにも反映する。
プッシュしたタグはGitHub上のreleaseに反映されます。

タグを消す

$ git tag -d 0.0.1

ローカルから指定のタグを消す

$ git push origin :0.0.1

リモートのタグを消す

README.mdを書く

ライブラリの説明等を書くREADME.mdを書いてライブラリのディレクトリルートにおきましょう。

READMEは以下の二つを特に意識しましょう。
- gifを貼る。
- 画像を貼る。
パッと見でそのライブラリの役割がわかるものは大事です。

その他文章として記述するものは
- このライブラリは何か - どうやってインストールするか - どうやって使うか - 今後どういう実装をしていくか - 連絡先 - ライセンス

などです。
書き方に決まりはありませんので、好きなライブラリのREADMEを参考に書いてみましょう!

releaseにCHANGELOGをつける

CHANGELOG.mdを書く

ライブラリのアップデート内容を記述するCHANGELOGを書いてライブラリのディレクトリルートにおきましょう。
初回は要らないかも?

releaseのCHANGELOGを載せる

GitHubリポジトリのreleaseを選択します。

スクリーンショット_2016-07-30_22_02_39

その中のDraft a new release(またはedit)ボタンを押します。

スクリーンショット_2016-07-30_22_02_48

すると編集画面が開くので、ここにCHANGELOG.mdと同様の内容を書けばオーケーです。

スクリーンショット 2016-07-30 22.03.48

まとめ

CocoaPodsでのライブラリ公開はふとlintが通らなかったり若干手間取りました。
手順に関して参考となるサイトはいくつかあったのですが、podspecやREADME, CHANGELOGなどのファイルの書き方はすでに公開済みのライブラリを参考に書くのが一番良かったです。

参考

最近実践したiOSのOSSライブラリ作成・運用方法まとめ