0

我们有一个静态库(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)
4

1 回答 1

0

我找到了两种方法来解决这个问题:

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

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

于 2016-12-19T02:53:34.437 回答