Xcode - 项目和静态库的源文件中出现重复符号

Xcode - Duplicate Symbol Occured in Source Files of Project and Static Lib

我们有一个静态库 (libAudioBulb.a),我将其用于这里几乎所有的项目。静态库包含 AFNetworking 的源文件。在我的一个项目中,我也需要使用 AFNetworking,但是,当我包含 AFNetworking 的源文件时,出现构建时错误,显示我在项目和静态库中有重复的符号。但是,奇怪的是,在另一个项目中,我只是做了同样的事情却没有构建时错误。那么,我需要在此处配置任何构建设置吗?

duplicate symbol _AFNetworkingTaskDidFinishErrorKey in:
    /Users/jun/Library/Developer/Xcode/DerivedData/Enwave_Pro-blvydexcmotpqigieicimmkbrlnw/Build/Intermediates/Enwave Pro.build/Debug-iphoneos/Enwave Pro.build/Objects-normal/armv7/AFURLSessionManager.o
    /Users/jun/Desktop/Projects/Multiroom/App/Enwave Pro/enwave_pro-ios/Enwave Pro/Sources/MultiroomPlay/libAudioBulb.a(AFURLSessionManager.o)
duplicate symbol _AFNetworkingTaskDidCompleteErrorKey in:
    /Users/jun/Library/Developer/Xcode/DerivedData/Enwave_Pro-blvydexcmotpqigieicimmkbrlnw/Build/Intermediates/Enwave Pro.build/Debug-iphoneos/Enwave Pro.build/Objects-normal/armv7/AFURLSessionManager.o
    /Users/jun/Desktop/Projects/Multiroom/App/Enwave Pro/enwave_pro-ios/Enwave Pro/Sources/MultiroomPlay/libAudioBulb.a(AFURLSessionManager.o)
duplicate symbol _AFNetworkingTaskDidFinishResponseSerializerKey in:
    /Users/jun/Library/Developer/Xcode/DerivedData/Enwave_Pro-blvydexcmotpqigieicimmkbrlnw/Build/Intermediates/Enwave Pro.build/Debug-iphoneos/Enwave Pro.build/Objects-normal/armv7/AFURLSessionManager.o
    /Users/jun/Desktop/Projects/Multiroom/App/Enwave Pro/enwave_pro-ios/Enwave Pro/Sources/MultiroomPlay/libAudioBulb.a(AFURLSessionManager.o)
duplicate symbol _AFNetworkingTaskDidCompleteResponseSerializerKey in:
    /Users/jun/Library/Developer/Xcode/DerivedData/Enwave_Pro-blvydexcmotpqigieicimmkbrlnw/Build/Intermediates/Enwave Pro.build/Debug-iphoneos/Enwave Pro.build/Objects-normal/armv7/AFURLSessionManager.o
    /Users/jun/Desktop/Projects/Multiroom/App/Enwave Pro/enwave_pro-ios/Enwave Pro/Sources/MultiroomPlay/libAudioBulb.a(AFURLSessionManager.o)
duplicate symbol _AFNetworkingTaskDidFinishAssetPathKey in:
    /Users/jun/Library/Developer/Xcode/DerivedData/Enwave_Pro-blvydexcmotpqigieicimmkbrlnw/Build/Intermediates/Enwave Pro.build/Debug-iphoneos/Enwave Pro.build/Objects-normal/armv7/AFURLSessionManager.o
    /Users/jun/Desktop/Projects/Multiroom/App/Enwave Pro/enwave_pro-ios/Enwave Pro/Sources/MultiroomPlay/libAudioBulb.a(AFURLSessionManager.o)
duplicate symbol _AFNetworkingTaskDidCompleteAssetPathKey in:
    /Users/jun/Library/Developer/Xcode/DerivedData/Enwave_Pro-blvydexcmotpqigieicimmkbrlnw/Build/Intermediates/Enwave Pro.build/Debug-iphoneos/Enwave Pro.build/Objects-normal/armv7/AFURLSessionManager.o
    /Users/jun/Desktop/Projects/Multiroom/App/Enwave Pro/enwave_pro-ios/Enwave Pro/Sources/MultiroomPlay/libAudioBulb.a(AFURLSessionManager.o)

我找到了两种解决方法:

  1. 如果在其他链接器标志下设置 -ObjC,则会导致重复。因此,如果不需要,请将其删除。

  2. 如果无法完成选项 1,则在包含这些 类 的项目之一中删除冲突 类 的 .m 文件即可。