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のバージョンをここで指定されたバージョンで実行するようになります。