【发布时间】:2018-09-29 16:09:09
【问题描述】:
我正在开发一个由静态库模块构建的模块化项目。每个静态库都有一个 xctest 测试包。该项目还具有静态的 3rd 方依赖项(例如 Swinject)
测试目标的构建设置中的 Mach-O 类型是“Bundle”。 3rd 方框架被添加到主目标上的“链接框架和库”中,也被添加到我们静态库中的测试包中,框架搜索路径也在两者上正确设置。
但是,虽然在主目标上构建成功,但当我尝试运行测试时,会导致以下编译器错误:
架构 x86_64 的未定义符号: “__T08Swinject9ContainerCMa”,引用自: MyClassTests.o 中的 __T08Swinject9ContainerCSgMa ld:未找到架构 x86_64 的符号 clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
因此,最终在我的理解中,第 3 方框架与测试目标的关联方式与它与主要目标的关联方式相同,但基于测试包构建是行不通的。我错过了什么吗?
【问题讨论】:
标签: ios xcode unit-testing static xctest