#目次
CocoaPodsでインストールできるオリジナルライブラリを作成する(1)
CocoaPodsでインストールできるオリジナルライブラリを作成する(2)
CocoaPodsでインストールできるオリジナルライブラリを作成する(3)
CocoaPodsでインストールできるオリジナルライブラリを作成する(4)
注意
この話を書く上の例として、
自作ライブラリの名前として"NeroBlu"
という名前をつけていますこれは自分の屋号から取ってきた名前なので、ただの「サンプル名」としてご認識ください
名前は各自でご自由につけなおしてくださいね
#まえがき
iOS開発をやってると CocoaPods
は何かと便利です
Podfile
ひとつを書き換えるだけで
誰かの作った便利なクラスたちをポコッと自分のアプリに導入したり
不必要であればバサッと削除できたり
たまに融通効かないですけど、いいヤツです
で、
こいつを自分の作ったクラスで
自分のために導入できるとなれば更に便利ですね
どうせ、新しくアプリを作ることになっても
だいたい最初に実装したりすることは同じです
同じことを何度も何度も書くのは非効率ですから
そのあたりを共通化しておいて
CocoaPods
の仕組みを使って
CocoaPods
で人のライブラリを使うように管理できるとすれば・・・
うん、便利かも!
ということで、
今回はそのあたりを書いていこうと思います
#作ってみる
GitHubでリポジトリ作成
GitHub上でリポジトリを新しく作りました
Repository name
は "NeroBlu"
にしました
リポジトリは Public
にする必要があるようです
リポジトリ作成前に
README.md
、LICENCE
、.gitignore
を勝手にコミットしてくれる設定があるので、
勝手にやってもらうことにしました
.gitignore
に関しては Swift
を選んでおけば後々楽ですね
ちなみに .gitignore
は、
自動作成後、Pods/
以下のファイルは無視するように設定しておくと後々便利です
(GitHubで作られたデフォルトではそうなっていていないので、書き換えておくとよいかと)
この時点でのディレクトリはこんな感じです
.DS_Store
.git
.gitignore
LICENSE
README.md
プロジェクトを作成
このディレクトリの中で
Xcodeで新しくプロジェクトを作成しました
File
> New
> Project
から iOS SingleView Project
を選択
名前の初期設定を行いますが
ここでプロジェクト名は本来の "NeroBlu"
という名前にはせず
"NeroBluDemo"
という名前にしました
この理由はあとで書きますが、ここがちょっとしたミソになります
この時点でのディレクトリはこんな感じです
.DS_Store
.git
.gitignore
Build
LICENSE
NeroBluDemo
NeroBluDemo.xcodeproj
README.md
CocoaPods を使って xcworkspace を作る
Xcodeは一旦終了して
このディレクトリにて CocoaPods
に Podfile
を作ってもらいます
pod init
この時に出来る Podfile
は特に編集せずに
次にインストールを指示します
pod install --verbose
(--verbose
を付けても付けなくてもよいです)
この時点でディレクトリ内は以下のようになりました
.DS_Store
.git
.gitignore
Build
LICENSE
NeroBluDemo
NeroBluDemo.xcodeproj
NeroBluDemo.xcworkspace
Podfile
Podfile.lock
Pods
README.md
ライブラリ部分を作成する
NeroBluDemo.xcworkspace
をダブルクリックするなどして、Xcodeを再起動します
ここに「本体」であるライブラリ部分を追加します
要は、このプロジェクト自体は「本体」を載っけるための器であり、
同時にライブラリの動作を確認したり、デモしたりするために使うというわけです
なので、最初につけた名前が "NeroBlu"
ではなく "NeroBluDemo"
にしたというわけです
File
> New
> Target
から
Framework & Library
を選んで、 CocoaTouchFramework
を選びました
ここで ProductName
にはじめて "NeroBlu"
という名前をつけます
それ以外の設定は特にいじらず Finish しました
Xcode上はこういう構成になったかと思います
podspecファイルを作る
CocoaPods
の仕組みを使って今作ったライブラリを使うためには
podspec
という情報ファイルを作ってやる必要があります
ファイル名はライブラリの名前で大丈夫かと思いますので
ルートディレクトリに、以下の様なコマンドを打って早速作ります
vim NeroBlu.podspec
下記のテキストをこのファイルを vim で書き込みました
これ以外にも色々な情報を加える事ができますが
とりあえず今回は最低限必要かなと思うものを書きました
d::Spec.new do |s|
s.name = "NeroBlu"
s.version = "1.0.0"
s.summary = "NeroBlu: Library for iOS."
s.description = ""
s.frameworks = "Foundation", "UIKit"
s.source = { :git => "https://github.com/xxxx/NeroBlu" }
s.source_files = "NeroBlu/*"
end
大事なのは、名前もそうですが
source
や source_files
のパスがちゃんと通ることですかね
GitHab上のURLがちゃんとライブラリのルートを指しているかどうかなどは
最低限チェックしておいたほうがいいかもしれませんね
これで準備はOKだと思います
最終準備
ここまでやってきたことを git push
を行います
GitHubd上こんな風になりました
#使ってみる
今作ったものを早速使ってみようと思います
まったく別の CocoaPods
を使用するプロジェクトを
立ち上げる、もしくは作成してください
その Podfile
はこのように書きます
use_frameworks!
pod 'NeroBlu', :git => 'https://github.com/xxxxx/NeroBlu'
(use_frameworks!を書かないとうまくいかないパターンがありました)
これで
pod install
をしてみましょう
Updating local specs repositories
Analyzing dependencies
Pre-downloading: `NeroBlu` from `https://github.com/xxxxx/NeroBlu`
Downloading dependencies
Installing NeroBlu (1.0.0)
Generating Pods project
Integrating client project
Sending stats
Pod installation complete! There is 1 dependency from the Podfile and 1 total pod installed.
他のCocoaPodsインストール時と同じように
インストールが正常に走れば成功です
用意したプロジェクト上こうなっていればOKですね
次回 はクラスライブラリに実際に実装をして
使用する側で使ってみるなどをしてみたいと思います