どうも現場のなかたです
いろんなiOSプロジェクトをやってると
cocoapodsのバージョン違いでPodfile.lock周りでエラーが出て、モヤっとすることないですか?
私だけすか?
その事件がついに時効を迎えました。
みなさんのiOS開発するとき自慢のMacに
sudo gem install cocoapods
こんな感じで意気揚々とcocoapodsを入れたかと思います。
しかし時が経って、こんなことやると…
$ gem list | grep cocoapods cocoapods (1.7.0, 1.6.1, 1.5.3)
色んなバージョン入ってーらー、、、こんなことないですか?
ちゃんと各プロジェクト、バージョン固定しようぜ運動をはじめました
見てわかる通り、cocoapodsさんはgemなので、bundler管理しちゃいましょう
やりかた
1.bundlerのインストール
gemをまとめてポンのbundlerをmacにインストールしましょう
sudo gem install bundler
2.bundler初期化
cocoapodsを使っているディレクトリに移動して
bundle init
そったら、Gemfileができます
3.Gemfile編集
$ vi Gemfile
# frozen_string_literal: true source "https://rubygems.org" # git_source(:github) {|repo_name| "https://github.com/#{repo_name}" } # <== コメントしちゃおう # gem "rails" gem 'cocoapods', '1.7.0' # <== 追加
4.見えない化
$ vi .gitignore
/vendor .bundle
5.cocoapodsインストール
bundle install --path vendor/bundle
これでプロジェクト指定のcocoapodが入ります
6.podインストール
bundle exec pod install
プロジェクトに関するライブラリが入ります
ディレクトリ構成
こんな感じになりますた
- Gemfile - Gemfile.lock - iOSProject - iOSProject.xcodeproj - iOSProject.xcworkspace - Podfile - Podfile.lock - Pods <-- ここにライブラリ入るネ - vendor <-- ここにcocoapods入るネ
補足
globalな環境にcocoapods入れてもいいかなと思いましたが、
環境を汚したくない派の人間なんで、プロジェクト内に納めた方が綺麗だなと。
今日はこんな感じで。