😆

flutter_facebook_auth クソほど謎のエラーで泣けるけど解決(2023年1月度の最新バージョンにて)

2023/01/04に公開

年末から年始にかけて、flutter_firebase_authを使うと全くビルドしない問題がやっと解決したので、メモとして共有します。
ただ、根本的な解決ではなくバージョンを落として解決しただけという話なので、そこだけご了承くださいmm

では、いきましょう。
まず、エラー内容はざっくりこんな感じ↓

エラー内容
Launching lib/main.dart on iPhone 14 Pro Max in debug mode...
Running Xcode build...
Xcode build done.                                           16.7s
Exception: Unable to launch com.fbfbfbcore.fbfbfbcore on 33AFEE06-7AF3-4F25-9742-C9C928FF1BBF:
ProcessException: Process exited abnormally:
An error was encountered processing the command (domain=FBSOpenApplicationServiceErrorDomain, code=1):
The request to open "com.fbfbfbcore.fbfbfbcore" failed.
The request was denied by service delegate (SBMainWorkspace).
Underlying error (domain=FBProcessExit, code=128):
	The operation couldn’t be completed. The process exited.
	The process exited.
  Command: xcrun simctl launch 33AFEE06-7AF3-4F25-9742-C9C928FF1BBF com.fbfbfbcore.fbfbfbcore --enable-dart-profiling --enable-checked-mode --verify-entry-points --start-paused --observatory-port=0
Error launching application on iPhone 14 Pro Max.

はい、意味不明。

一回はビルド成功しているのに、そこから謎のエラーで強制終了させられる・・・。
エラーの内容は正直、読んでも分からん。
ってのが本音で分かる人はぜひ教えて頂きたいですmm

どうしたら良いんだろうなぁと思って、公式リファレンスを色々と漁っていると
下記の内容が様々な箇所でみられたので、issueにも沢山届いてるんだろうなぁって感じです。

IMPORTANT: When you install this plugin you need to configure the plugin on Android before run the project again . If you don't do it you will have a No implementation found error because the facebook SDK on Android throws an Exception when the configuration is not defined yet and this locks the other plugins in your project. If you don't need the plugin yet please remove or comment it.

Deepl様に翻訳頂いた内容を元にざっくり噛み砕くと
『iOS、Android共に権限をちゃんと与えないとビルドしないから気をつけてね』って感じです。

はい、まさに僕が抱えていた問題そのものを表しております。

なので、永遠とinfo.plistやandroidManifestファイルを眺めてましたが、

『間違えてる要素なくね????絶対合ってるよなぁ。。。。。。』

と思いながらイライラしていました。

解決策

冒頭でもお伝えしましたが、バージョンを下げることで解決に至りました。
今が2023年1月4日なので、
最新版 5.0.7
→ これを4.2近辺にすることです。

ただ、『僕の場合』にたまたま上手く当てはまっただけかもなので、もしかしたら、
あなたの場合では、全然違う事が解決に繋がるかもしれません。

あくまでも上記のエラーが頻繁に起こってしまい、どうしようもねぇやってなったらやってみてくださいね。

エラーを解決するまでが結構苦しかった

ぶっちゃけ訳も分からないエラーに苦しむって辛いですよね、
それは初学者でも経験者でも同様の事が言えると思います。
(もちろん、エラーを回避する術を複数持ち得る経験者の方が有利だとは思いますが)

エラーを解決するに至った方法としては、下記があります。

  1. MethodChannelを使用して、ネイティブの動きを自作で作ってしまう
    → これやろうと真剣にswiftとkotlinを勉強しようかマジで考えました、後ちょっとでudemy買ってましたもん。
    ただ、全く訳が分からない箇所でエラーになっていて、これやったら鬼のように遠回りで時間食うなと思ってやめました。

  2. 別のパッケージを使用する
    → 当たり前のように候補に上がると思いますが、このflutter_facebook_authは900overのlikeが付いており、他のfacebookの認証系パッケージが少なく、現実的ではないと考え辞めました。
    そんなもんかとは思いますが、flutter_facebook_authに依存し過ぎぃぃぃぃって感じです。

  3. Githubで上手く行ってるのをパクる
    → これが大当たりでした。

結局は上手く行ってる人のを丸々パクってまえと思って、flutter_facebook_authで検索をかけて直近使ってる人のを根こそぎクローンしました。

10個ほどクローンしましたが、いろいろな理由でビルドされませんでしたが
その中でたまたま1つだけビルドに成功しました。

中身を比べてみるとバージョンが少し低いのを使っていたので、
「あ、バージョンを変えるのも1つか」と思ってトライして上手くいきました。

人のを徹底的にパクるのって重要だなぁと改めて感じたので、
これが伝わると嬉しいです

Discussion