(´・ω・`)お知らせ工事中(´・ω・`)

「No such module ‘Firebase UI’」にめちゃくちゃハマった話

椎名
無駄に2日くらいハマった・・・

最初はよくあるライブラリ読み込めてないエラーかと思っていた

「No Such module ‘ライブラリ名’」は割とありがちなエラーで大体の原因が
・なぜかライブラリの参照がうまくいかなくなった
・そもそも該当のライブラリをpod fileに追加しておらずライブラリ自体存在しない
おそらくこの2つだと思われる。

過去に自身も同じ問題が起き「あぁ、またこれか」ととりあえず調べて出てきた対処法を試した。
・Xcodeを再起動
・pod install・pod updateの再実行
・Mac自体の再起動
・pod deintegrate(ライブラリ削除)からのpod installで削除からの再取得
・pod fileの中身を確認して本当に該当エラーのライブラリが追加されているか確認
ここら辺の作業をすれば一般的な「No such module ‘XXX’」のエラーはだいたい消える。

がしかし今回でくわしたエラーは上記の方法で解決ができなかった。

今回のエラーの原因

まさかの、「FirebaseUI」に大きな変更が加えられていたことが原因だった。
公式を見ると下記のように記載されていた。

  • Breaking change: Broke monolithic FirebaseUI module into separate modules per feature. You’ll need to update the imports in your project accordingly.
    // FirebaseUI 10.x
    import FirebaseUI
    // FirebaseUI 11
    import FirebaseAuthUI
    import FirebaseDatabaseUI
    // ...

 

(サイトURL:https://github.com/firebase/FirebaseUI-iOS/releases/tag/v11.0.0)

簡単に言うと

椎名
ver11以降のFirebaseUIは個々のモジュールごとに分解したやで!
今後は必要なモジュールをそれぞれインポートしてな!

とのこと。
個々のモジュールに分解したからFirebaseUIがなくなり、今回のようなエラーが発生していた。

解決方法

先ほども記載した通り、必要なモジュールをインポートする。

修正前

import FirebaseUI

修正後

//ログインにGoole・Facebook・Emailログインを使用したい場合
import FirebaseAuthUI
import FirebaseGoogleAuthUI
import FirebaseFacebookUI
import FirebaseEmailAuthUI

修正後として上記に記載しているけどもここは、自分が使用したいモジュールによって変わります。

警告が出る場合

私が修正を行った時、警告が出たのでその解決方法を記載しておきます

◆現象

◆解決方法

FirebaseUI v11になってからは引数を取るようになったようなので、
引数を与えてあげる必要があるみたい。
正直警告を放置しても動くので気になる方は修正してみてください。

(参考サイト:https://github.com/firebase/FirebaseUI-iOS/blob/master/samples/swift/FirebaseUI-demo-swift/Samples/Auth/FUIAuthViewController.swift)

最後に

・FirebaseUI v11にアップデートされた方は仕様が変わるので要注意!!

・困ったら早めに公式の最新情報を漁るべし!!
→これができていなかったので今回は解決に時間がかかった。。。

開発関連の最新記事4件