LoginSignup
8
4

More than 1 year has passed since last update.

cocoapodsのpodのバージョン指定の書き方

Last updated at Posted at 2021-11-13

#podのversion numberの指定指針
cocoapodsに限らず様々な所で1.0.4のようなバージョン情報を見たことがあると思います。
これはセマンティックバージョンと呼ばれるバージョン管理方法で、.で区切られた数字はそれぞれmajor.minor.patchと呼びます。
major では重大なアップデートが行われます。
minor では新機能のアップデートが行われます。
patch ではバグの修正が行われます。

major で重大な変更が行われることが多いので、 minor 以下のアップデートのみ行われるようにしたほうが良いでしょう。

##instagramのバージョン指針
instagramなどでは基本的にMajorバージョンをあげていき、細かい修正がある場合に Minorを使用するという管理方法もあります。
リンクを貼っておくので、確認してみると良いかもしれません。

version 指定の方法

バージョン指定の方法は大きく分けて3つあるのでそれぞれ記述していきます。
※ライブラリ名は適宜変更してください。

###1.固定バージョンの取得
pod 'ライブラリ名', '1.0.4'
このように指定した場合はversionが変更されることはありません。

###2.>, <によるバージョンを取得

pod 'ライブラリ名', '>1.0.0'
1.0.0より大きい最新バージョンを取得します。

pod 'ライブラリ名', '>=1.0.0'
1.0.0以上の最新バージョンを取得します。

pod 'ライブラリ名', '<1.0.0'
1.0.0未満の最新バージョンを取得します。

pod 'ライブラリ名', '<=1.0.0'
1.0.0以下の最新バージョンを取得します。

###3.~>によるバージョン取得

pod 'ライブラリ名', '~> 1.1.0'
1.1.xの範囲での最新バージョンを取得します。

pod 'ライブラリ名', '~> 1.0'
1.xの範囲での最新バージョンを取得します。

pod 'ライブラリ名', '~> 1'
1.xの範囲での最新バージョンを取得します。
こちらでもバージョンは取得できますが、pod 'ライブラリ名', '~> 1.0'と同じバージョンが取得されるのであまり使われない書き方です。

練習問題

このようなバージョンが存在していた場合、次のバージョン指定ではどのバージョンがインストールされるか考えてみてください。

バージョン履歴
1.0.0
1.5.2
1.9.3
2.0.0

Q1. '1.0.0'を指定された場合どのバージョンが選択されるでしょうか?

答えはこちら 正解は**'1.0.0'**です。 こちらは、[1.固定バージョンの取得](https://qiita.com/drafts/e2f9edc0f991eee22d9d/edit#1%E5%9B%BA%E5%AE%9A%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%81%AE%E5%8F%96%E5%BE%97)の問題です。 '1.0.0'は指定されたバージョンが選択されます。なので、答えは`1.0.0`です。

Q2. '> 1.0.0'を指定された場合どのバージョンが選択されるでしょうか?

答えはこちら 正解は**'2.0.0'**です。 こちらは、[2.>, <によるバージョンを取得](https://qiita.com/drafts/e2f9edc0f991eee22d9d/edit#2-%E3%81%AB%E3%82%88%E3%82%8B%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%82%92%E5%8F%96%E5%BE%97)の問題です。 '> 1.0.0'は'1.0.0'よりも大きいということなので、選択肢は`1.0.0 < x`となります。今回のバージョン履歴では、`1.5.2`, `1.9.3`, `2.0.0`が選択肢に入ります。 この中で最新のバージョンが選択されるので、`2.0.0`が答えです。

Q3. '<= 1.6.0'を指定された場合どのバージョンが選択されるでしょうか?

答えはこちら 正解は**'1.5.2'**です。 こちらは、[2.>, <によるバージョンを取得](https://qiita.com/drafts/e2f9edc0f991eee22d9d/edit#2-%E3%81%AB%E3%82%88%E3%82%8B%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%82%92%E5%8F%96%E5%BE%97)の問題です。 '<= 1.6.0'は'1.6.0'以下ということなので、選択肢は`0.0.0<= x <= 1.6.0`となります。今回のバージョン履歴では、`1.0.0`, `1.5.2`が選択肢に入ります。 この中で最新のバージョンが選択されるので、`1.5.2`が答えです。

Q4. '~> 1.0.0' を指定された場合どのバージョンが選択されるでしょうか?

答えはこちら 正解は**'1.0.0'**です。 こちらは[3.~>によるバージョン取得](https://qiita.com/drafts/e2f9edc0f991eee22d9d/edit#3%E3%81%AB%E3%82%88%E3%82%8B%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E5%8F%96%E5%BE%97)の問題です。 '~> 1.0.0'は'1.0.x'ということなので、選択肢は`1.0.0 <= x < 1.1.0`となります。今回のバージョン履歴では、`1.0.0`が選択肢に入ります。 この中での最新のバージョンが選択されるので、`1.0.0`が答えです。

Q5. '~> 1.0' を指定された場合どのバージョンが選択されるでしょうか?

答えはこちら 正解は**'1.9.3'**です。 こちらは[3.~>によるバージョン取得](https://qiita.com/drafts/e2f9edc0f991eee22d9d/edit#3%E3%81%AB%E3%82%88%E3%82%8B%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E5%8F%96%E5%BE%97)の問題です。 '~> 1.0'は`1.x`ということなので、選択肢は`1.0 <= x < 2.0`となります。今回のバージョン履歴では、`1.0.0`, `1.5.2`, `1.9.3`が選択肢に入ります。 この中の最新バージョンが選択されるので、`'1.9.3'`が答えです。
8
4
1

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
8
4