ios - 将 3rd 方静态库链接到静态库的测试目标结果的 undefined symbol 错误

标签 ios xcode unit-testing static xctest

我正在开发一个模块化项目,该项目由作为静态库的模块构建而成。每个静态库都有一个 xctest 测试包。该项目还具有静态的第 3 方依赖项(例如 Swinject)

测试目标build设置中的 Mach-O Type 是“Bundle”。第 3 方框架被添加到主要目标上的“链接框架和库”以及我们静态库中的测试包中,框架搜索路径也在两者上正确设置。

然而,虽然在主要目标上构建成功,但当我尝试运行测试时,它会导致以下编译器错误:

架构 x86_64 的 undefined symbol : “__T08Swinject9ContainerCMa”,引用自: __T08Swinject9ContainerCSgMa 在 MyClassTests.o ld: 找不到体系结构 x86_64 的符号 clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

所以最终在我的理解中,第 3 方框架以与链接到主要目标相同的方式链接到测试目标,但是在测试包上构建是行不通的。我错过了什么吗?

最佳答案

您的测试目标会自动链接到您的主要目标。但是测试目标引用的任何其他框架和库都必须显式链接。他们不是免费来的。

关于ios - 将 3rd 方静态库链接到静态库的测试目标结果的 undefined symbol 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49916263/

相关文章:

ios - 无法从 iPhone 文档目录位置中保存的文件重新加载 UIImage

xcode - 通过单击更改 UIButton 的图像 - XCode 6 Swift

ios - 没有调用scrollViewDidScroll

java - 您能更好地解释一下 TestNG 的 @BeforeTest 注解的语义吗?

ios - XCTestCase for ios的XCTestSuite

ios基本页面 View Controller 值分配

ios - rightBarButtonItem 未显示在 View 上

ios - UITextField 未在 UIStackView 中提交可用宽度

ios - Storyboard UITableViewController 启用屏幕底部的工具栏

python - 使用单元测试来衡量 Django 性能