在我的iOS XCode项目中,我正在使用来自第三方的外部非开源库.
现在我想通过
cocoapods将AFNetworking添加到我的项目中.
当我这样做时,我得到了多个像这样的错误:
duplicate symbol _OBJC_METACLASS_$_AFImageCache in:
/Path/to/framework(UIImageView+AFNetworking.o)
/Path/to/DerivedData/Build/Products/Debug-iphonesimulator/libPods.a(UIImageView+AFNetworking.o)
63 duplicate symbols for architecture i386
它认为图书馆也在使用AFNetworking,因此阻止我使用它.有没有办法解决这个问题(除了不使用其他框架,这不是一个选项)?
编辑
我设法通过类似于this的操作从其他框架中删除AFNetworking.但是现在框架没有从cocoapods找到AFNetworking,我得到了架构i386的未定义符号.
有没有办法告诉框架在哪里可以找到AFNetworking?
最佳答案 您无法从同一项目中的两个不同位置加载相同的库.这是Objective-C的限制,而不是CocoaPods.阅读
this answer了解更多详情.
主要是解决这个问题,你只能在一个地方包括AFNetworking.将您的其他依赖项移动到CocoaPods可以帮助您这样做,假设在链接的答案中讨论的版本中没有冲突.