Ios Cocoapods:重复的接口定义

Ios Cocoapods:重复的接口定义,ios,xcode,swift,xcode6,cocoapods,Ios,Xcode,Swift,Xcode6,Cocoapods,我把我的私人图书馆包装成椰子荚。它依赖于ReactiveCocoa s.name = 'MineLibrary' s.dependency 'ReactiveCocoa/Core' s.source_files = 'Source/*.{h,m,swift}' .... 某些头文件包含: #import <ReactiveCocoa/RACSignal.h> 但是当我编译项目时,我得到了以下错误: duplicate interface definition for class

我把我的私人图书馆包装成椰子荚。它依赖于ReactiveCocoa

s.name =  'MineLibrary'
s.dependency 'ReactiveCocoa/Core'
s.source_files = 'Source/*.{h,m,swift}'
....
某些头文件包含:

#import <ReactiveCocoa/RACSignal.h>
但是当我编译项目时,我得到了以下错误:

duplicate interface definition for class 'RACStream'
duplicate interface definition for class 'RACSignal'


/Users/USER/Library/Developer/Xcode/DerivedData/Project-emcwpmbbuimotuftzijeemvngrvj/Build/Products/Debug-iphoneos/Pods/ReactiveCocoa.framework/Headers/RACStream.h:27:1: error: duplicate interface definition for class 'RACStream'

@interface RACStream : NSObject
^
/Users/USER/Workspace/Project/Pods/ReactiveCocoa/ReactiveCocoa/RACStream.h:27:12: note: previous definition is here
@interface RACStream : NSObject
如何解决这个问题?

另外,我正在使用CocoaPods 0.36.0.rc.1

您是否尝试过更新到CocoaPods的最新版本?我注意到你提到你正在使用一个过时的候选版本,这可能是你的错

一般来说,在应用程序中创建和使用CocoaPod时,您需要做以下几点:

1) 在CocoaPod中,使用
s.dependency
声明pod规范中的所有依赖项

2) 在应用程序中,使用CocoaPods管理所有应用程序依赖项。也就是说,不要手动将库拖放到应用程序中。若这样做,您就有可能创建和拖放包含的类重复的类

3) 在你的应用程序和CocoaPod中,尽可能依赖灵活的版本。一般来说,您至少应该允许进行较小的版本更新,例如,
pod'PodName',“~>1.0.0”

4) 在应用程序的pod文件中,指定应用程序的目标和单元测试目标,例如

target "MyApp" do
  # App pods...
end

target "MyAppTests", :exclusive => true do
  # Test pods...
end

如果有两个以上的目标,请为每个目标指定一个目标。或者,至少,为单元测试指定一个不同的目标,这将使应用程序注入其中。

不久前我遇到了这个问题,有人错误地导入了cocoapod头。确保使用括号符号,例如,而不是:
#导入“theUsefulClass.h”
您应该使用:
#导入

在Xcode中,您可以检查符号导航器(Cmd-3)以查看两次定义符号的位置。这将允许你决定做什么。在我的例子中,我从两个不同的库中找到了两个同名的符号。也许其中一个可以在符号名称中添加前缀以消除冲突。

不幸的是,我不记得问题是如何解决的,可能是因为cocoapods版本。从那以后,我再也没有收到过这个问题。
target "MyApp" do
  # App pods...
end

target "MyAppTests", :exclusive => true do
  # Test pods...
end