Open8

複数Flavorに対応したFlutterにFirebaseを導入する

manabiyamanabiya

iOSシミュレータでアプリを実行すると以下のエラーとなる

Error (Xcode): Unable to load contents of file list: '/Target Support Files/Pods-Runner/Pods-Runner-frameworks-Debug-development-input-files.xcfilelist'

色々した挙句、Flavor設定後かつFirebaseの設定をしていないコミットまで戻り以下を実行
https://github.com/AngeloAvv/flutter_flavorizr/blob/master/doc%2Ftroubleshooting%2Funable-to-load-contents-of-file-list%2FREADME.md
PodfileのFlavor設定、iosのバージョン指定をもとに戻して実行。
上記のエラーは消えたが、
Waiting for VM Service port to be available...から動かなくなる

manabiyamanabiya

iOSシミュレータの再起動で解消。

Flavor対応のため作成したios/configをXcodeにドラッグ&ドロップして、アプリを実行すると別のエラーが発生。

Error (Xcode): Multiple commands produce '.../build/ios/Debug-development-iphonesimulator/Runner.app/GoogleService-Info.plist'

manabiyamanabiya

⇧ config追加時はデフォルト設定。xcodeに追加するとbuildphaseにbundle対象のファイルとして追加されるようだ。
flutterfireで構成しているので、FlutterFire: "flutterfire bundle-service-file"でバンドルするので削除が不安だったが問題なさそうだ

manabiyamanabiya

Google Sign-Inを実装する

Supabaseをバックエンドとしているため、以下の記事を参考に進める
https://supabase.com/docs/guides/auth/social-login/auth-google?queryGroups=platform&platform=flutter

  1. Firebaseのログイン方法にあるGoogleプロバイダを有効にする。
    • Androidは、証明書のフィンガープリントを追加する。注意点として、リリースしたアプリの署名はPlay署名になるので、別途フィンガープリントの登録が必要。

Androidフィンガープリント取得方法
https://developers.google.com/android/guides/client-auth?hl=ja#using_gradles_signing_report

manabiyamanabiya

上記設定後、Flutterfireによる設定ファイルの更新を行おうとすると以下のエラーが発生。

`PBXGroup` attempted to initialize an object with unknown ISA `PBXFileSystemSynchronizedRootGroup` from attributes

configをXcodeに追加する際に、Folderとして追加したのが問題だったようだ。
Groupに変換したところ上記エラーは解消した
https://github.com/CocoaPods/CocoaPods/issues/12456#issuecomment-2402736983