Firebaseをインストールしようとしたら、”linker command failed with exit code 1″のビルドエラーが発生したが、Build SettingsでOther Linker Flagsを設定しなおしたら解決した話。

XcodeプロジェクトでFirebaseを使用するために、cocoapodsにて、Firebase/Coreをインストールし、初期化コードを記述して、ビルドしようとしたところ、以下のビルドエラーが発生した。

linker command failed with exit code 1 (use -v to see invocation)

エラーの詳細は以下のように出力されていた。

Undefined symbols for architecture x86_64:
“_GULLoggerRegisterVersion”, referenced from:
___FIRLoggerInitializeASL_block_invoke in FirebaseCore(FIRLogger.o)
“_GULLoggerInitializeASL”, referenced from:
___FIRLoggerInitializeASL_block_invoke in FirebaseCore(FIRLogger.o)
“_GULLogBasic”, referenced from:
_FIRLogBasic in FirebaseCore(FIRLogger.o)
“_GULLoggerEnableSTDERR”, referenced from:
___FIRLoggerInitializeASL_block_invoke in FirebaseCore(FIRLogger.o)
“_GULSetLoggerLevel”, referenced from:
_FIRSetLoggerLevel in FirebaseCore(FIRLogger.o)
“_GULLoggerForceDebug”, referenced from:
___FIRLoggerInitializeASL_block_invoke in FirebaseCore(FIRLogger.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

どうやら、Google関連のモジュールがリンクされていないようだが、どこを調べたら良いのかさっぱりわからない。

ということで、ゼロからプロジェクトを立ち上げて、Firebaseのインストールをして、成功したプロジェクトとBuild Settingsを比較してみることに。

結局、Build SettingsLinkingセクションのOther Linker Flags、を$(inherited)に設定したら、ビルドできた。

ビルド失敗していたプロジェクトの方は、Other Linker Flagsが、-ObjCとなっていた。これは、もともと、Google Analytics SDKを使用していて、その際に追加した項目。今回駄目だったのは、cocoapodsが、ココをうまく書き換えられなかったということだろうか?

※後ほど、pod initを行ったら、この辺に関するエラーというか警告が、ちゃんと出力されていました…

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

メインはWeb系エンジニアです。

コメント

コメントする

目次