我正在将 CocoaPods 用于具有以下结构的项目:
Example/
Example/PublicUmbrellaHeader.h
Example/PrivateHeaderForComponent1.h
Example/PrivateHeaderForComponent2.h
Example.podspec
Tests/
Tests/Podfile
Tests/Tests/UnitTestForPrivateComponent1.m
Tests/Tests/UnitTestForPrivateComponent2.m
测试/Podfile
pod 'Example', :path => '../'
这并不罕见。例如,AFNetworking 遵循类似的结构。什么is不同的是需要仅向单元测试公开一组特定的标头。
但是,我无法找到一种简单的方法来实现这一目标。这
以下方法有效,但它并不干净,因为它需要手术
公众Podspec
.
示例.podspec
s.public_header_files = 'Example/PublicUmbrellaHeader.h'
s.default_subspec = 'Public'
s.subspec 'Public'
s.subspec 'Tests' do |ss|
ss.public_header_files = 'Example/*.h'
end
测试/Podfile
pod 'Example', :path => '../'
pod 'Example/Tests', :path => '../'
有没有更简单的方法?如果不是,是因为我想要完成的事情有问题,还是仅仅因为 CocoaPods 还不能满足这个用例?
您可以直接修改示例项目中的测试目标,以将私有标头包含在标头搜索路径中。只需进入您的单元测试目标,然后在搜索路径 -> 标头搜索路径, add:
$(inherited) "${PODS_ROOT}/Headers/Private/Example"
在单元测试文件中,您可以包含标题,如下所示:
#import "PrivateHeaderForComponent1.h"
#import "PrivateHeaderForComponent2.h"
而不是典型的#import <Example/PrivateHeaderForComponent1.h>
缺点是您正在假设 CocoaPods 如何在 Pods 目录中布置文件,但我宁愿这样做,也不愿更改我的公共 podspec 文件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)