はじめに
初めてCocoaPodsにライブラリを公開した際に、すんなりいかなかったのでその手順についてメモしておきます。参考になったら嬉しいです。
実行環境
- OS X El Capitan 10.11.6
- git version 2.8.3
- CocoaPods 1.1.1
- Xcode version 8.1
手順
1. ライブラリの作成
任意のディレクトリ配下で以下のコマンドを叩く。
$ pod lib create [任意のライブラリ名]
いくつか質問されます。
What language do you want to use?? [ Swift / ObjC ]
> Swift
Would you like to include a demo application with your library? [ Yes / No ]
> Yes
Which testing frameworks will you use? [ Quick / None ]
> None
Would you like to do view based testing? [ Yes / No ]
> No
今回はテストについては考えていなかったのでNone
、No
にしました。分からなければこれで大丈夫です。
Demo application
を用意する場合はYes
にする。これはだいたい用意してるんじゃないですかね。
ここまでやるとライブラリの雛形が作られる。([任意のライブラリ名]のディレクトリがあるはずです。)
2. Githubに公開
この段階でなくても構いませんが、早いうちにGithubにあげておきましょう。
Githubに生成したライブラリ名と同じ名前でリモートリポジトリを作成する。
確か生成された[ライブラリ名]ディレクトリはGit管理されていなかったので、
$ git init
してからリモートにプッシュします。
$ git add .
$ git commit -m "commit message"
$ git remote add origin https://github.com/[User Name]/[ライブラリ名].git
$ git push origin master
3. ライブラリの編集
/Pod/Classes/ReplaceMe.swift
を削除し、ここにライブラリの機能として提供するファイルを挿入していきます。
/Example/[ライブラリ名].xcworkspace
を開く。基本ここからプロジェクトを開きましょう。
この時、私の場合はtest関係のエラーがいくつか出ました。
明確な解決方法はわかりませんでしたが、test部分のコードを適当にコメントアウトしたり、Podfile
のtest部分の記述を削除したらエラーが消えました。
Xcodeの/Example for [ライブラリ名]
グループ内にViewController.swift
などが用意されているので、追記してデモアプリを作成する。
$ pod install
Podfile
に以下のようなコードを追加しておく。['SWIFT_VERSION'] = '3.0'
は適宜変更してください。
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['SWIFT_VERSION'] = '3.0'
end
end
end
import
はうまくできるかなど確認する。Runで実行できたらひとまずOKです。
4. READMEを記述
最低限記述すべき内容はテンプレートで書かれているので、部分的に訂正したり、他のライブラリから引用する。
5. podspecの修正
これも部分的な変更になる。/Podspec Metadata
グループから編集できます。
バリデーションチェックを行う。podspec
が適切かどうか判断してくれます。
$ pod spec lint [ライブラリ名].podspec
エラーが出れば対応していきます。私の場合以下の変更を加えました。
-
Xcode/Preferences/Locations/CommandLineTools
でXcodeのバージョンを指定する。 -
.swift-version
ファイルを作成し、バージョン番号を指定する。(例:3.0
を記述)
参考: CocoaPodsへのライブラリのアップロードと注意点 -
podspec
のdescription
を修正する。
- WARN | description: The description is shorter than the summary.
[!] The spec did not pass validation, due to 1 warning (but you can use `--allow-warnings` to ignore it).
summary
はライブラリの短い説明で、description
はより詳細な説明になるようなのでsummary
よりも長く記述しなければなりません。
5. タグをつける
commitコメントを"Release 1.0.0
.”にしてプッシュする。(または 0.1.0
)
$ git add -A && git commit -m "Release 1.0.0.”
こうすることでGithubでcommitの確認をした時にReleaseの状況がわかりやすいです。
最新のcommitにタグをつけてプッシュする。CocoaPodsで指定できるバージョンはtagで管理されるので忘れずにやってください。
$ git tag 1.0.0
$ git push --tags
6. CocoaPodsに登録・公開
Githubに登録しているAddressとNameで登録します。(初回だけになります。)
$ pod trunk register [your mail address] [your name]
以下のコマンドで、このように自分の情報が返るようになります。
$ pod trunk me
- Name: Kyohei-Sakai
- Email: nico_f00tb@yahoo.co.jp
- Since: November 9th, 16:26
- Pods:
- SimpleCustomizableTextView
- Sessions:
- November 9th, 16:26 - March 17th, 2017 17:53. IP: 133.10.212.29
CocoaPodsに公開
$ pod trunk push [ライブラリ名].podspec
これでリリース完了になります。
今回CocoaPodsに公開したライブラリはこちら