Cocoapods:重复的接口定义

米哈伊尔

我把我的私人图书馆包装成椰壳足纲。它依赖于ReactiveCocoa。

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

如何解决?
PS我正在使用cocoapods 0.36.0.rc.1

JRG开发人员

您是否尝试过更新到最新版本的CocoaPods?我注意到您提到您使用的是过时的发布候选版,这可能是错误的。

通常,这是在应用程序中创建和使用CocoaPod时需要做的事情:

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

2)在您的应用程序中,使用CocoaPods管理所有应用程序依赖项。也就是说,请勿手动将库拖放到您的应用程序中。如果这样做,则可能会冒用拖放的include创建重复的类的风险。

3)在您的应用程序和CocoaPod中,都尽可能依赖于灵活的版本。通常,您至少应允许次要版本更新,例如pod 'PodName', '~> 1.0.0'

4)在应用程序的pod文件中,为您的应用程序指定一个目标,并为您的单元测试目标指定目标,例如

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

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

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章