7

我需要在 Xcode 的“其他链接器标志”中包含 -ObjC 标志才能使用第 3 方组件。然而,一旦我添加了这个标志,我就会得到一系列看起来像这样的错误:

    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

同样,如果我不使用 -ObjC 标志,这一切都会消失。它似乎与 Google Analytics 库有关。我该如何解决这个问题?

4

1 回答 1

7

编辑构建目标的发布和调试配置。在调试配置中包含库的调试版本,以及发布目标的非调试版本。不要将两者都包含在同一个配置中——这就是你得到重复符号的原因。

从构建目标中删除这两个库,例如:

从构建目标中删除库

然后在构建目标的设置中搜索“其他链接器标志”,并为调试配置添加“-lGoogleAnalytics_debug”,为发布配置添加“-lGoogleAnalytics”,例如:

为调试和发布配置设置链接器标志

于 2013-07-29T18:15:23.010 回答