用Cocoapodspipe理多个目标的依赖关系
我刚开始修改cocoapods来pipe理我的iOS项目的依赖关系。 目前我正在尝试使用GHIOSUnit集成unit testing。 我遵循了他们的所有指示,并尝试了他们的样品testing,这一切都像魅力。
但是,当我开始使用我的实际项目文件进行testing时,问题就开始了。
我正在使用AFNetworking客户端服务器通信,每当我访问我的sharedClient所谓'CRLClient',AFHTTPClient的包装,它给了我未定义的符号错误。
Undefined symbols for architecture armv7: "_OBJC_METACLASS_$_AFHTTPClient", referenced from: _OBJC_METACLASS_$_CRLClient in CRLClient.o "_OBJC_CLASS_$_AFJSONRequestOperation", referenced from: objc-class-ref in CRLClient.o "_OBJC_CLASS_$_AFHTTPClient", referenced from: _OBJC_CLASS_$_CRLClient in CRLClient.o ld: symbol(s) not found for architecture armv7 clang: error: linker command failed with exit code 1 (use -v to see invocation)
用于pipe理依赖关系的pod文件如下所示
workspace 'Storyboards.xcworkspace' platform :ios, '5.0' pod 'AFNetworking', '1.1.0' target :UnitTests, :exclusive => true do pod 'GHUnitIOS', '0.5.6' end
实际的项目目标完美地与AFNetworkingbuild立良好的合作关系。
PS我需要将所有要testing的文件添加到UnitTest目标中。 那么在构build阶段添加“目标依赖”是什么呢?
简而言之,
- 如何分享不同目标之间的共同依赖关系?
- 如果我仍然需要将每个文件添加到新目标,那么添加目标依赖关系真的会做什么?
通过使用
target :UnitTests, :exclusive => true do pod 'GHUnitIOS', '0.5.6' end
你说的唯一的库你想链接到UnitTests
目标是GHUnit
主要是说你不希望AFNetworking
连接以及。 问题是它看起来像你也导入你的AFHTTPClient
子类到UnitTests
,它不能find它试图链接到的AFNetworking组件。
要解决这个问题,你应该可以删除独占的电话
target :UnitTests do pod 'GHUnitIOS', '0.5.6' end
有了这个,你将GHUnit
只链接到你的UnitTests
目标,但将AFNetworking
链接到两个。 “除非给出:exclusive => true选项,否则目标将默认包含在块之外定义的依赖项。” (从这里 )