😅

Flutter で Firebase.initializeApp() が iOS でうまく動かなかった話

に公開

これなに

Android で Firebase が使えるようになったので、 iOS でも試そうと思ったら Firebase 初期化処理で引っかかってしまったので解決した方法をメモした。

原因

  • VisualStudio で GoogleService-Info.plistios/Runner/ に貼り付けたことが原因らしい。
  • Xcode で貼り付けないと project.pbxproj の更新がされず、正しく plist ファイルを読み込むことができなかったっぽい。

解決方法

  • Xcode で ios/ を開く。(FLutter プロジェクト直下ではなく iOS まで潜る)
  • Xcode 上で GoogleService-Info.plistios/Runner/ に貼り付ける。
  • これをもって flutter run でビルドし直すとちゃんと動くようになった。
    image.png
    image.png

参考:解決までに遭遇したエラー

Firebase 初期化処理が終わる前に Firebase のメソッドをコール?

なにもないけど、このエラーが出てきた。

FirebaseException ([core/not-initialized] Firebase has not been correctly initialized.

Usually this means you've attempted to use a Firebase service before calling `Firebase.initializeApp`.

View the documentation for more information: https://firebase.flutter.dev/docs/overview#initialization
    )

Firebase の再定義エラー

複数定義がある時に出るっぽいエラーではあったものの、そんなものないよ?ってなって頭にハテナマークが浮かんでいた。

Failed to build iOS app
Error (Xcode): redefinition of module 'Firebase'
/Users/su3-hokkaido/Github-su3/myapp/ios/Pods/Firebase/CoreOnly/Sources/module.modulemap:0:7


Error (Xcode): failed to emit precompiled header
'/Users/su/Library/Developer/Xcode/DerivedData/Runner-bhnjccbzxqqqqjawkrnzkwnxtbpx/Build/Intermediates.noindex/PrecompiledHeaders/Runner-Bridging-Header-swift_14UCLV31P57KM-clang_2OZP1VBCBKMH4.pch' for bridging header
'/Users/su3-hokkaido/Github-su3/myapp/ios/Runner/Runner-Bridging-Header.h'


Could not build the application for the simulator.
Error launching application on iPhone 15 Pro Max.
GitHubで編集を提案

Discussion