0

我有一个依赖 cocoapod 依赖项的项目,这个依赖项有一个单元测试目标,其中包含一些我想在我的主机应用程序测试中使用的模拟文件。例子:

@import testable MyPod_Unit_Tests
class HostApplicationTestCase: XCTestCase {
    func setup() {
        let mockObj = UsefulPodMockObject()
....

然后我收到以下构建错误:

ld:警告:找不到选项“-F/Users/macuser/dev/projs/HostProject/Pods/pod-library/pod-library/Frameworks”的目录 ld:警告:找不到或使用自动链接的框架“RandomCocoapodsDependencyFromPodfile” ' 架构 x86_64 的未定义符号:“MyPod_Unit_Tests.UsefulPodMockObject.init() -> MyPod_Unit_Tests.UsefulPodMockObject”,引用自:闭包 #1 () -> () in HostApplicationUnitTests.HostApplicationTestsCase.spec() -> () in HostApplicationTestsCase.o ld:未找到架构 x86_64 的符号 clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

提前致谢。

4

1 回答 1

0

首先,从 test-spec 源文件中排除 mocks 文件夹:

test_spec.source_files = 'MyPod/Tests/**/*.{h,m,swift}'
test_spec.exclude_files = 'MyPod/Tests/Mocks'

然后,在主规范的源文件属性中包含 mocks 文件夹的新路径:

spec.source_files = ['MyPod/Classes/**/*', 'MyPod/Tests/Mocks/**/*']

通过这种方式,我们保持文件夹井井有条,并且 podspec 负责目标所有权,只需记住始终使用此文件夹位置。

于 2020-05-26T13:44:53.033 回答