はじめに
iOS開発でのライブラリ管理といえばcocoapodsだと思います。
超有名なcocoapodsですが、一歩間違えば開発環境が変わってしまうことも。
開発者のローカルにあるcocoapodsのバージョンがまちまちだと
開発環境が変わってしまいますよね。
最悪の場合ビルドが出来ない可能性もあります。
そんな人のためにbundlerというものがありますが、
その前にcocoapodsについて簡単に仕組みを理解しておくと
ハマった時に何かと役に立つと思うので説明します。
1.cocoapodsとは
言わずと知れたiOS関係のライブラリ管理ツールですね。
cocoapodsはRubygemsに入っているgemです。
Rubygems?gem?
2.Rubygemsとは、gemとは
Rubygemsとはrubyに標準で搭載されているパッケージ管理ツールのことです。
そのパッケージはgemと呼ばれています。
Ruby on Railsはよく聞くと思いますが、
Railsもgemの一つでRubygemsを使ってインストールできます。
3.cocoapodsはgem
cocoapodsを最初にインストールした時に
$ sudo gem install cocoapods
を実行したのは覚えていますか?
Macにはrubyが標準でインストールされていて、
rubyの中にはRubygemsが標準で搭載されています。
そのRubygemsを使ってcocoapodsをインストールしているのです。
4.cocoapodsのバージョン固定の概要
Rubygemsのgemのバージョンなどを管理できるツールがあります。
それがbundlerというものです。
このbundlerを使うことでcocoapodsのバージョンを指定することができます。
5.バージョン指定をやってみる
bundlerのインストール
$ sudo gem install bundler
でbundlerがインストールされます。
お分かりの通りbundlerもgemです。
bundlerの初期化
cocoapodsを使っているディレクトリに移動して、
$ bundle init
をすると初期設定をしてくれます。
初期化で作成されたGemfileの編集
$ vi Gemfile
をするとデフォルトではこのようになっていると思います。
このように編集していきます。 (バージョンは適宜変更してください)
cocoapodsのインストール
$ bundle install --path vendor/bundle
Gemfileに書かれているライブラリをインストールします。
(ここではcocoapodsしか書いていないのでcocoapodsだけです)
指定バージョンでpod install
$ bundle exec pod install
今回の例だとcocoapodsの0.35.0でPodfileに書かれたライブラリを
インストールしてくれます。
podのバージョンは$ bundle exec pod --version
で確認ができます。
説明は終わりです!簡単だったでしょう?
ちなみに
bundlerを使わずにcocoapodsのバージョンを合わせる方法もあります。
cocoapodsをバージョン指定して再インストールするというものです。
これは開発者みんなにやってもらう必要があります。
※ただし複数のプロジェクトを扱っている場合は、
いちいち切り替えるのが面倒なのでおすすめしません。
今使用しているバージョンを確認
$ pod --version
0.38.2
指定したバージョンのcocoapodsをアンインストール
$ sudo gem uninstall cocoapods --version '=0.38.2'
バージョンを指定してインストール
$ sudo gem install -v 0.35.0 cocoapods
インストールしたバージョンを確認
$ pod --version
0.35.0
おわり
これで複数人での開発でも環境に相違なく開発ができると思います。
特にjenkinsなどのCIでリリースするときはやっておくと良いでしょう。
指摘や質問があればコメントください。