本投稿は TECOTEC Advent Calendar 2021 の9日目の記事です。
はじめに
こんにちは! 次世代デジタル基盤開発事業部の野口です。 弊社では、Flutter案件があるとかないとか、、、、関わってないので詳しいところはわかりませんが、僕は趣味でFlutter触っております。 データベースにfirebaseを導入する際に、毎回のようにビルドエラーに悩まされます。その都度調べれば解決できるもではあるのですが、毎回忘れて1から調べるのは時間の無駄感があるのでエラーの解消方法をまとめたいと思います。
開発環境
1.導入手順
まず、導入手順ですがfirebaseの公式ドキュメントがあるので、こちらを参考に行います。
公式ドキュメントの説明はだいぶ簡素なので、以下がとても分かりやすいです。
flutternyumon.com flutternyumon.com
今回は上記の導入ができた前提で話を進めます。
iosのビルドエラー
iosのビルドを行うと全体で以下のエラーが出ます。
1.Podfileの変更
Podfileはデフォルトで以下の状態ですが、これを
// ios/Podfile #platform :ios, '9.0'
以下の状態に変更します。
// ios/Podfile platform :ios, '10.0'
ちなみに、最新のcloud_firestore(v3.1.1)
とfirebase_core(v1.10.2)
では、platformが9.0のままだとエラーが出るので、10.0以上にする必要があります。
2.pod installができない
1.ios/Podfile.lockがある場合は削除する
2.Terminalでios直下に移動し、pod install
をする
iosのエラーは以上でなくなると思います。
実際にビルドをしてみましょう。ビルドすると分かるのですが、なかなかビルドが終わりません!! 正確に測ったことはないのですが、10〜20分くらいかかります。気長に待ちましょう、、、
ビルド時間を短縮する
ビルドの時間を短縮するコードはあるのですが、firebase導入後の初回は使えないみたいです。理由はよくわかりません! 2回目以降のビルドでは以下のコードを使えば時間を短縮できます。大体1分くらいになると思います。
// ios/Podfile # ... target 'Runner' do pod 'FirebaseFirestore', :git => 'https://github.com/invertase/firestore-ios-sdk-frameworks.git', :tag => '8.6.0' # ... end
androidのビルドエラー
続いて、androidをビルドすると以下のエラーが出ます
1.multidexを有効化する
対処はシンプルで以下を追加するだけです。
// android/app/build.gradle android { defaultConfig { ... minSdkVersion 19 //19に変更 targetSdkVersion 28 multiDexEnabled true //追加 } ... } dependencies { implementation "androidx.multidex:multidex:2.0.1" // 追加 }
エラー文の中にある以下に記載してあります。 https://developer.android.com/tools/building/multidex.html
まとめ
ios
- Podfileの変更
platform :ios, '10.0'
- ios/Podfile.lockがある場合は削除する
- Terminalでios直下に移動し、pod installをする
android
- multidexを有効化する(以下を追加する)
- minSdkVersion 19
- multiDexEnabled true
- implementation "androidx.multidex:multidex:2.0.1"
おわりに
firebaseのバージョンが異なったり、大きめのアップデートが来たらまたエラーが変わるかもしれないのでご参考程度に。 今回のブログ作成時もエラー対処に苦戦しましたが、まとめてみるとやってることは簡単でしたね。 まーこれも1か月後くらいには忘れてると思います。悲しいなぁ・・・
ご覧いただきありがとうございます。