#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' を指定された場合どのバージョンが選択されるでしょうか?