【发布时间】:2019-04-12 02:37:15
【问题描述】:
我正在尝试修复我们的单元测试。 iOS 应用程序很复杂,有许多开源库静态链接到应用程序二进制文件中,包括 Google protobuf 和 Boost。它们在我们的 iOS 应用项目的不同目标中构建为静态链接库,并链接到主应用。
到目前为止,这些库也直接链接到测试目标,即使应用程序托管测试。但是我在 Google Protobuf 初始化的早期遇到了一个问题,这让我认为该库在测试目标和主应用程序目标中的存在都是一个问题。所以我从测试目标中删除了静态库,认为引用该库中内容的 Objective-C++ 方法仍会在主应用程序可执行文件中找到它。情况似乎并非如此,因为链接器无法链接引用在链接到应用程序二进制文件的静态库中定义的 C++ 代码的测试文件。
Objective-C 和 Swift 代码似乎可以正确链接。
我不确定如何解决这种情况。据我了解 Xcode 单元测试,通常不会在测试目标中包含主应用程序的代码。但我不确定如何告诉 Xcode 我的测试文件需要能够链接到应用程序中的任意代码。
这一切都在 Xcode 10.1 中。
【问题讨论】:
标签: xcode xctest xcode10.1 xctestcase