LoginSignup
4
1

More than 1 year has passed since last update.

cocoapodsを複数バージョン管理する

Posted at

cocoapods管理方法

cocoapodsの管理方法は大抵以下の3つのどれかの手順を踏むかと思いますが、今回は1.の方法を書いていきたいと思います。

1.HomeBrew, rbenv, Bundler, Cocoapodsを使用する
2.Homebrew, Cocoapodsを使用する
3.Cocoapodsを使用する

用語紹介

homebrew

OS X 向けのパッケージ管理ツールのこと。
rbenvやgitなどを管理する。

rbenv

複数のRubyのバージョン管理を行う。
Rubyの管理・切り替えができる。

bundler

依存関係にあるgemのインストールやバージョン管理を行う。
Rubyのプラグインを特定のディレクトリに入れる。
gemのローカル管理ができる。

gem

Rubyのパッケージ(ライブラリ)を管理してくれる。
cocoapodsなどを管理する。

cocoapods

Rubyのgemの一つ。
プロジェクトの依存関係を管理するツール。

導入手順

それぞれの導入手順を解説していきます。

Homebrew

こちらがHomebrewの公式サイトで、インストール方法やドキュメントが確認することができます。

Homebrew をインストール

 1. HomeBrew をインストールしていない方は下記のコードを実行して、 Homebrew をインストールしてください。

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

2.brew -vbrew --versionを実行し、バージョン確認ができたら成功です。

実行結果
Homebrew バージョン名  //Homebrew 3.3.3など

rbenv

こちらがrbenvのGithubです。

rbenvインストール

  1. Homebrew から rbenv をインストール
brew install rbenv

2.シェルに rbenv を設定する

rbenv init

3.ターミナルウィンドウを閉じて新しいウィンドウを開き、変更を有効にします。

4.rbenv-doctor スクリプトを使って rbenv が正しく設定されていることを確認します。

curl -fsSL https://github.com/rbenv/rbenv-installer/raw/main/bin/rbenv-doctor | bash

これで完成です。rbenvのインストールにはruby-buildが含まれているので、これでrbenv installを使って他のRubyバージョンをインストールする準備が整いました。

Rubyバージョンのインストール

1.最新の安定版をリストアップします。
インストールしたいRubyバージョンが決まっている方はこの処理を省略して大丈夫です。

rbenv install -l

2.リストされたRubyバージョンのどれかをインストールします。

rbenv install バージョン番号   //rbenv install 3.0.3など

Rubyのバージョンを変更する

Rubyのバージョンと global or local を設定していきます。

globalとは、Macに標準搭載されているRubyのことでシステム全体で適用されます。
localとは、設定したディレクトリ以下でのみ適用されます。なので、プロジェクトごとにRubyのバージョンを管理できます。

1.まずは現在インストールされているRubyのバージョンを確認します。

rbenv versions

このような一覧画面が表示されます。

一覧画面
$ rbenv versions
  1.8.7-p352
  1.9.2-p290
* 1.9.3-p327 (set by /Users/sam/.rbenv/version)
  jruby-1.7.1
  rbx-1.2.4
  ree-1.8.7-2011.03

2.今回はlocalを使用します。上記のバージョン番号一覧の中からバージョン番号を選び実行します。
これによりカレントディレクトリでは指定されたバージョン番号のRubyの使用されます。

globalを使用した場合はシステム全体で指定されたRubyが使用されます。(localで設定されたディレクトリを除く)

Homebrew や rbenv は一度インストールされるとシステム全体に適応されますが、ここから先は local でのみ適応させることもできるので、違うプロジェクトでも導入する場合ここから先を参照してください。

rbenv local(global) バージョン番号

3.localを使用した場合は以下のコマンドの実行し、カレントディレクトリに.ruby-versionが存在する場合は成功です。
globalの場合はホームディレクトリに存在すると思います。

ls -a

Bundler

現在セットされている Ruby で bundler をインストールしていきます。

Bundler の Github、公式ドキュメントはこちら。

Bundlerをインストール

1.RubyのRuby gems(gemのこと)を使用して、bundlerをインストールします。
バージョン番号はこちらを参考にしてください。
今回は例題として'~> 2.1'を指定したいと思います。

gem install bundler -v '~> 2.1'

下記のようなエラーが出る場合は、こちらの記事を参照してください。
現在のシェルを確認する方法はこちらです。

エラー内容
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /Library/Ruby/Gems/2.6.0 directory.

2.gemfileを作成します。

bundle init

3.gemfile を編集し、 cocoapods を追加します。
# gem "rails"はコメントアウトしてあるので合ってもなくても変わらないです。

vi gemfile

今回は例題として、'~> 1.10'のバージョン指定を行いたいと思います。

gem 'cococapods', '~> 1.10'

gemfileはこのようになると思います。

gemfile全体
# frozen_string_literal: true
source “https://rubygems.org”
git_source(:github) { |repo_name| “https://github.com/#{repo_name}” }

gem 'cocoapods' , '~> 1.10'

4.bundleをインストールします。

bundle install

ここで以下のエラーにハマりましたので、一応書いておきます。

エラー内容
There was an error while trying to write to User/ユーザー名/アプリ名/.bundle/cache/.../versions.
It is likely that you need to grant write permissions for that path.

キャッシュが残っていることが原因ぽかったので、ホームディレクトリ/.bundle/cache を一度削除して、bundleをインストールし直したら解決しました。

CocoaPodsをインストール

1.podfileを作成

bundle exec pod init

2.podfileを編集し、ライブラリを追加します。

vi podfile

3.インストールしたいライブラリを記述していきます。
ライブラリのバージョン番号の指定方法はこちらを参考にしてください。
今回は例題としてAlamofireの'~> 5.4'バージョンをインストールしたいと思います。

pod 'Alamofire', '~> 5.4'

全体はこのようになります。

podfile全体
# Uncomment the next line to define a global platform for your project
# platform :ios, ‘9.0’
target ‘CoordinatorTest’ do
 # Comment the next line if you don’t want to use dynamic frameworks
 use_frameworks!
 # Pods for CoordinatorTest
 pod 'Alamofire', '~> 5.4' // ここ追加
end

4.podをインストールして終了です。

bundle exec pod install

インストールが完了すると、下記のような緑の文字列が表示されます。
これで pod のインストールが完了です。
※インストールするライブラリの数により数字は変わります。

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1