-ObjC链接器标志导致重复的符号错误

sol*_*eil 7 xcode compiler-errors objective-c static-libraries ios

我需要在Xcode的"Other Linker Flags"中包含-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
Run Code Online (Sandbox Code Playgroud)

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

Nic*_*art 7

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

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

从构建目标中删除库

然后在构建目标的设置中搜索"其他链接器标志",并为Debug配置添加"-lGoogleAnalytics_debug",为Release配置添加"-lGoogleAnalytics",例如:

为调试和释放配置设置链接器标志