
React Nativeのアプリを開発してるんですが、そのビルドにBitriseを使ってます。
最近、そのプロジェクトにFirebase Analyticsをセットアップしたんですが、その際にCocoaPodsのバージョンが古いと言われてアップデートしていました。
さて、そのプロジェクトをBitriseでビルドしようとすると同様のエラーが出てビルドが失敗します。僕の場合は以下のようなメッセージでした。
[!] `GoogleAppMeasurement` requires CocoaPods version `>= 1.10.2`, which is not satisfied by your current version, `1.10.1`. command failed, error: pod install failed: exit status 1
手元のマシンでエラーになったのと同じエラーが出たんですが、手元のマシンではさくっとCocoaPodsをアップデートして解決した問題をBitriseではどうしたらいいのか。
正解は Gemfile.lock を用意してバージョンを指定する、です。実はドキュメントにも書いてあります。Gemfile.lock ではなくて Podfile.lockでもいいそうなんですけどどうやって書けばいいかよくわからなかったのでGemfile.lockを用意する方法にしました。
まず、以下のような内容でGemfileを作成し、プロジェクトのiosフォルダ直下に保存しておきます。
# frozen_string_literal: true
source "https://rubygems.org"
git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
gem "cocoapods", ">=1.10.2"
実際に指定するバージョンは各自の事情にあわせてください。
これを用意したらbundle installを実行します。そうすると同じフォルダ内にGemfile.lockができあがります。そしてこのファイルをコミットしておきます。
そうすると、Bitriseはpod installの実行時に利用するCocoaPodsのバージョンをここで指定されたバージョンで実行するようになります。