🤖

podコマンドのバージョン固定

2021/12/29に公開

CocoaPodsのインストールといえば

$ gem install cocoapods

って書いてある事が多い。

これだと

  • 複数人で開発する時に別々のバージョンが入る事がある
  • そのせいで、Podfile.lockに差分が出る

という事故がたまーに起きる。

なので、

$ gem install cocoapods -v x.x.x

という感じで指定する。

でも、別のプロジェクトだとバージョンが違うとか起こる…。

というわけで、僕はbundlerを使って入れています。

bundlerを使う

bundleを使っておけば、CocoaPods以外に使いたいgemが出てきてもGemfileに追加すれば良いので便利。

とか。

bundlerのインストール

$ gem install bundler

Gemfile作成

$ cd $PROJECT_ROOT
$ cat > Gemfile <<EOD
source 'https://rubygems.org'

gem 'cocoapods'

<<EOD
  • 任意のバージョンで固定したい場合
$ gem 'cocoapods', '0.33.1'

とか書く。

bundle install

$ cd $PROJECT_ROOT
$ bundle install --path=vendor/bundle --binstubs=vendor/bundle/bin

pod install

  • Podfileを用意してから
$ cd $PROJECT_ROOT
$ bundle exec pod install

おまけ

direnvを入れておくとbundle execが要らなくなって便利

install

$ brew install direnv
  • Hookの登録
eval "$(direnv hook zsh)"

設定

$ cd $PROJECT_ROOT
$ cat > .envrc <<EOD
export PATH=$PWD/vendor/bundle/bin:$PATH
EOD
$ direnv allow

これで、PROJECT_ROOTcdすれば

pod install

と使えるようになる。

Discussion