CocoaPods : latest versionの確認とFirebaseをバージョン指定する記述

広告:超オススメUnity Asset
  広告:超オススメUnity Asset

CocoaPodsを使っていると、自分のアプリがまだまだ開発中だって時に、外部ライブラリがどんどんバージョンアップしていることはよくあります。仕様変更などがあると、pod updateしたタイミングで、記述を大きく変更せねばならなくなったりします。「今そんなことしたくない」って時にそういう状態になりたくないですよね。そのため、通常は開発を始めて、一区切りするまでは、外部ライブラリのバージョンは固定しておきたいものです。

Podfileの中でバージョンを指定すると固定できるわけですが、Firebaseについては、CoreやAuth、Databaseなどそれぞれがバラバラなバージョンとなっており、またそれぞれこれだと思ってバージョンの記述をしてもうまくバージョン固定できなかったりしていました。Firebaseについては、どのような書き方をすればいいのかがわかったのでMEMOしておきます。

最新バージョンの確認方法

まず、現時点でインストールされているバージョンと最新版を確認するコマンドです。Podfileが存在するディレクトリまで移動して、

pod outdated

です。すると、最新版が利用可能なものが

Firebase 3.16.0 -> 3.16.0 (latest version 4.0.0)
- FirebaseAnalytics 3.8.0 -> 3.8.0 (latest version 4.0.0)
- FirebaseAuth 3.1.1 -> 3.1.1 (latest version 4.0.0)
- FirebaseCore 3.6.0 -> 3.6.0 (latest version 4.0.0)
- FirebaseDatabase 3.1.2 -> 3.1.2 (latest version 4.0.0)
- FirebaseInstanceID 1.0.10 -> 1.0.10 (latest version 2.0.0)
- FirebaseMessaging 1.2.3 -> 1.2.3 (latest version 2.0.0)
- FirebaseRemoteConfig 1.3.4 -> 1.3.4 (latest version 2.0.0)
- Google-Mobile-Ads-SDK 7.19.1 -> 7.19.1 (latest version 7.20.0)

のようにリストされました。

PodfileでFirebaseのバージョンを固定

これの赤字で記した「Firebase」のバージョンだけを Podfile にて

pod 'Firebase', '~> 3.16.0'
pod 'Firebase/Core'
pod 'Firebase/Database'
pod 'Firebase/RemoteConfig'
pod 'Firebase/AdMob'
pod 'Firebase/Messaging'
pod 'Firebase/Auth'

のように記述しておくと、FirebaseDatabaseやFirebaseCoreなども最新版に更新されることなく、Firebaseが3.16.0時点のバージョンをそのまま保ってくれました。

ちなみに、「~>」の意味は、ここに記載がありますが、’~> 3.16.0’の場合、3.16.xのxの部分がマイナーバージョンアップした場合のみアップデートするような記述です。最新バージョンが「3.17.0」以上になるとアップデートされません。なので、おおよそ、仕様変更のような大きな変更はなく、そのバージョンのバグ修正などだけに対応することができるような感じになると思われます。

上記の例では、現在、「Firebase」の最新版は4.0.0なわけですが、「FIRDatabase→Database」等の記述変更があるため、アップデートするとかなり多くのエラーが発生し、今その修正作業をしたくないので、3.16.0をインストールしたときのままにしています。pod 'Firebase/Database’ 部分にバージョンの記述をしなくてもFirebaseDatabaseは3.1.2に保たれています。