うるおいらんど

【iOS】Firebase SDK アップデート後の framework not found FirebaseInstanceIDというエラーを解消した話【Carthage】

お久しぶりです。Reoです。

しばらくiOS開発から離れていましたが、ようやく向き合えるようになってきました。頑張ろうと思っているのに早速今回のエラーにハマってしまい心が折れそうでした。いや、折れました。

すんごい初歩的なことだったんですが、備忘録として残しておきます。

 

環境

  • Xcode 11.5
  • Carthage 0.35.0
  • macOS Catalina (10.15.5)

 

今回の問題

Carthageを用いてFirebaseのAnalyticsとAdmobを以下のように導入していました。

Cartifle

binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseAnalyticsBinary.json"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseAdMobBinary.json"

 

Xcodeを11.3.1から11.5にアップデートして、ライブラリもアップデートをして、いざビルドしようとすると以下のエラーが出ました。

ld: framework not found FirebaseInstanceID clang: error: linker command failed with exit code 1 (use -v to see invocation)

Carthageでの導入がダメなのかと思い、CocoaPodsで導入する方法も試しましたが、結局このエラーがでてしまいダメでした。

 

Cartfile.resolved でバージョンの変化を確認してみました。

# アップデート前
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseAdMobBinary.json" "6.5.0"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseAnalyticsBinary.json" "6.5.0"
# アップデート後
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseAdMobBinary.json" "6.28.1"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseAnalyticsBinary.json" "6.28.1"

6.5.0 から 6.28.1 へのアップデートでした。

解決方法

ただただエラー文通りの原因でした。FirebaseInstanceID というフレームワークが 6.28.1 にはありません。

 

まずは既に入っている FirebaseInstanceID.framework を削除します。

その後ビルドすると以下のようなエラーになりました。

アップデートで増えたやつを追加してやります。

このとき Do Not Embed にしておかないとビルド後にエラーが出ます。

 

これで無事に起動することができました。初歩的ィ...

 

おわりに

もう何年も前から Carthage を触っているはずなのに、数ヶ月離れているだけでこんなにわからなくなるもんですかね。これで1日溶かしているし、ほんとただの初心者だよ...

最近は、Swiftを書くことやiOSについての記事を書くことが怖くなってしまっていました。数ヶ月離れて、ようやく向き合う気になれたのでこれから初心者に戻って頑張っていきますね。

それではでは。

 

参考リンク

Comments

コメントはありません。

現在コメントフォームは工事中です。