2013-07-29 15 views
7

サードパーティコンポーネントを使用するには、Xcodeの "Other Linker Flags"に-ObjCフラグを含める必要があります。しかし、私はこのフラグを追加すると、私は次のようになり、エラーのスルーを取得:私は-ObjCフラグを使用しない場合-ObjCリンカフラグにより​​シンボルの重複エラーが発生する

duplicate symbol _OBJC_IVAR_$_GAI.defaultTracker_ in: 
     /MyApp/GoogleAnalytics/libGoogleAnalytics.a(GAI.o) 
     /MyApp/GoogleAnalytics/libGoogleAnalytics_debug.a(GAI.o) 
    duplicate symbol _OBJC_IVAR_$_GAI.dispatcher_ in: 
     /MyApp/GoogleAnalytics/libGoogleAnalytics.a(GAI.o) 
     /MyApp/GoogleAnalytics/libGoogleAnalytics_debug.a(GAI.o) 
... 
    duplicate symbol _OBJC_CLASS_$_GAIDispatcher in: 
     /MyApp/GoogleAnalytics/libGoogleAnalytics.a(GAIDispatcher.o) 
     /MyApp/GoogleAnalytics/libGoogleAnalytics_debug.a(GAIDispatcher.o) 
    duplicate symbol _OBJC_METACLASS_$_GAIDispatcher in: 
     /MyApp/GoogleAnalytics/libGoogleAnalytics.a(GAIDispatcher.o) 
     /MyApp/GoogleAnalytics/libGoogleAnalytics_debug.a(GAIDispatcher.o) 
    ld: 212 duplicate symbols for architecture armv7s 

繰り返しますが、これはすべてが消えます。 Googleアナリティクスのライブラリと関係があるようです。これをどうやって回避するのですか?

+2

デバッグとGoogle Analyticsのライブラリの通常版 – nielsbot

+0

真が、DEB _both_含めましたように思えます明らかにデバッグにはugライブラリが必要です。私は、-ObjCフラグを使用しないと、これらのエラーは発生しません。 – soleil

答えて

7

ビルドターゲットのリリースおよびデバッグ構成を編集します。デバッグバージョンにはライブラリのデバッグバージョンを、リリースターゲットには非デバッグバージョンを含めます。同じ設定に両方を含めないでください。重複したシンボルが表示されるのはこのためです。

例えば、ビルド対象から2つのライブラリを削除します。「そして、ビルドターゲットの設定で「他のリンカのフラグ」を検索し、デバッグ設定のための「-lGoogleAnalytics_debug」を追加

remove libraries from build targets

をして - リリースの設定のためのlGoogleAnalytics」、例えば:

set linker flags for debug and release configs

+0

libGoogleAnalytics_debug.aをデバッグ設定にのみ含めるように設定するにはどうすればよいですか? – soleil

+0

私はそこにライブラリのバリアントを制御するビルド設定があると思います...(しかし、動的にロードされたライブラリでのみ動作するかもしれません) – nielsbot

+0

ライブラリのビルド段階からライブラリを削除してから、 "Other Linker Flags"(__OTHER_LDFLAGS__)適切な__libGoogleAnalytics__とのリンク – nielsbot

関連する問題