我把我的私人图书馆包裹在椰子树中.它依赖于Reactive
Cocoa.
s.name = 'MineLibrary' s.dependency 'ReactiveCocoa/Core' s.source_files = 'Source/*.{h,m,swift}' ....
一些头文件包含:
#import <ReactiveCocoa/RACSignal.h>
我把它包括在一个新的项目中:
use_frameworks! .... pod 'ReactiveCocoa' pod 'MineLibrary',:git => 'git@.....'
但是当我编译项目我收到一个错误:
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
怎么可以解决?
附:我正在使用椰子油0.36.0.rc.1
解决方法
尝试更新到最新版本的CocoaPods?我注意到你提到你在使用过时的发布候选人,这可能是错误的.
一般来说,在应用程序中创建和使用CocoaPod时,您需要执行以下操作:
1)在您的CocoaPod中,在pod规范中声明所有的依赖项,对每个使用s.dependency
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
如果您有两个以上的目标,请为每个目标指定目标.或者,至少指定单元测试的不同目标,这将使应用程序注入它.