iOS開発で各種プラグインを管理するために、cocoapodsを利用していると思いますが
cocoapods自体のバージョンが変わってしまうとPodsファイルの挙動も変わってしまうので
できるだけプロジェクトと一緒に管理できたほうがメリットが多いです。
そこでcocoapodsをみんな同じ状態でつかえるように
cocoapodsのバージョン管理に関してまとめました。
rbenvとbundlerをインストール
まずは rbenv
と bundler
をインストールします。
cocoapods
は rubyのgemと呼ばれるものの1つのため
rubyのバージョン管理・切り替えが行える rbenv
と
gemのローカル管理ができる bundler
をインストールします。
こちらに関しては下記のページにまとまっていますので
そちらを見ながらbundlerのインストールまで
進めていただければと思います。
MacにHomeBrew,rbenv,bundlerをインストールする - Qiita
NOTE:
今回rbenv
を推奨しているのは、Rubyのバージョンを固定するためなので
RVM
やほかのものでバージョン固定していただければ他の方法でも問題ありません。
bundlerでcocoapodsのセットアップ
bundlerのインストール確認
bundlerが入っているかを確かめます。
ターミナルで以下のコマンドを打ってください。
bundlerが入っていれば、バージョンとともに表示されます。
$ gem list | grep 'bundler'
bundler (1.14.6)
何も表示されなかったらgemインストールが完了していないので
今一度bundlerインストールの手順を確認してみてください。
Gemfileのセットアップ
bundlerの設定ファイルを作ります。
今作っているアプリのプロジェクトルートまで移動しコマンドを叩きます。
# iOSアプリのプロジェクトのルートディレクトリが~/project/ios/ の場合
$ cd ~/project/ios/
$ bundler init
上記実行後、新しく Gemfile
ができていればOKです。
中身を開くと以下のようになっています。
# frozen_string_literal: true
source "https://rubygems.org"
# gem "rails"
このファイルを元にインストールするgemを決定します。
今回は例として1.2.1
で固定したい場合の記述を
例示として記載します。
# frozen_string_literal: true
source "https://rubygems.org"
gem 'cocoapods' , '1.2.1'
これでインストール準備は完了です。
cocoapodsを使えるようにする
bundler
では指定した場所にプラグインのファイルを配置できるので、明示的に配置します。
わかりやすいディレクトリならどこでも問題ありませんが
今回はメジャーな vendor/bundle
を指定します。
$ bundle install --path vendor/bundle
このコマンドを実行すると
実際に指定したバージョンの cocoapods
を落としてきます。
インストールが完了したら、実際に使えるかやってみます。
$ bundle exec pod --version
1.2.1
実際にインストールする
以下のコマンドで実行します。
$ bundle exec pod install
なお、アップデートのときは以下
$ bundle exec pod update
その後のバージョン管理
このあとは Gemfile
を一緒にバージョン管理しておけば
どの cocoapods
のバージョンでインストールしたかが一目瞭然になるので
『cocoapods
のバージョンが違ってうまくいかない!』ということが減ると思います。
(おまけ).gitignoreの追加
bundlerで入れるファイルは
バージョン管理の対象にしなくてもいいので
bundle install --path
で指定したパスを追記しておきます。
今回の例だと vendor/bundle
なので以下のように記述を追記
vendor/bundle