背景
チームで複数のプロジェクトを開発しているとプロジェクトごとにfastlaneなどのバージョンが違ったりすることがよくある。
pod install
をするとPodifle.lock
が更新されてしまったり
人によって挙動が変わったり色々不便。
対策
bundlerを使う。
rbenvのインストール
$ brew install rbenv
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi' >> ~/.bash_profile
$ source ~/.bash_profile
rbenv-binstubsインストール
bundler
でインストールしたライブラリをbundle exec
経由しなくても使えるプラグイン
$ brew install rbenv-binstubs
bundlerインストール
※bundlerだけはグローバルにインストールします。
$ gem install bundler
bundler初期設定
$ cd /プロジェクトのルートディレクトリ
$ bundle init
cocoapodsとfastlaneを追加
Gemfile
# frozen_string_literal: true
source "https://rubygems.org"
git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
# 以下を追加
gem "fastlane"
gem "cocoapods"
実際にインストール
$ bundle install --path=vendor/bundle --binstubs=vendor/bin
.bundle/config
に設定が保存されるので、2回目以降は bundle install
で大丈夫。
おまけ
gitignore
ぼくのいるチームでは以下の.gitignore
を書いてライブラリのアップデートで大量のfilechangeがでないようにしてます。
.gitignore
vendor/bundle
vendor/bin