[iOS] duplicate symbols : libGoogleAnalytics.a と libGoogleAnalytics_debug.a は共存できない

Tadashi Shigeoka ·  Mon, April 29, 2013

Xcode iOS プロジェクトをビルドしたら、下記のようなエラーが発生しました。

duplicate symbol _OBJC_METACLASS_$_GAIDispatcher in:
    /Users/your_username/git/MyApp/Externals/GoogleAnalytics/libGoogleAnalytics_debug.a(GAIDispatcher.o)
    /Users/your_username/git/MyApp/Externals/GoogleAnalytics/libGoogleAnalytics.a(GAIDispatcher.o)
ld: 212 duplicate symbols for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

■ 解決方法

[TARGETS] → [Build Phases] → [Link Binary With Libraries] にて、libGoogleAnalytics_debug.a と libGoogleAnalytics.a のどちらかの Link を除去すればOKです。

ファイル名の通り、 libGoogleAnalytics_debug.a はデバッグ時に利用するライブラリなので、本番用ライブラリ libGoogleAnalytics.a と共存させようとしたせいでエラーが発生してしまってたみたいです。

参考情報