【问题标题】:Running Swift XCTests on iDevice在 iDevice 上运行 Swift XCTests
【发布时间】:2014-08-15 09:31:15
【问题描述】:

我有一个 Swift 应用程序,可以在我的 iPad 和模拟器上正常运行。该项目还有一个在模拟器上运行良好的测试目标,但不能在 iPad 或 iPhone 上运行。

当我尝试在任何 iDevice 上进行测试时,我收到链接器错误消息:

Undefined symbols for architecture armv7:
"__TFC17ExampleApp17ExampleObjectCfMS0_FT_S0_", referenced from:
      __TFC22ExampleAppTests8ExampleTests5setUpfS0_FT_T_ in ExampleTests.o
...

在我的 XCTestCase 中,我正在导入我的主要目标:

import ExampleApp

同样,这适用于模拟器,但不适用于实际设备。一切都以 iOS 8 为目标,我正在使用最新的测试版。

【问题讨论】:

  • 您是否检查了主要目标和测试目标的架构是否设置为相同的值?

标签: ios swift xcode ios-simulator xctest


【解决方案1】:

未定义符号错误通常是由于无法在编译时链接代码导致 - 检查以确保所有相关的 .swift 文件都标记为包含在 ExampleTests 目标和 ExampleApp 目标中。

【讨论】:

  • 也许不是。默认情况下,Swift(和当前的 ObjC)使用“应用程序样式”测试(设置了 TEST_HOST 标志),这意味着所有主要目标类和库对测试目标都是可见的。事实上,同时导入两者都会导致命名空间错误,使类显得“不可见”。 .事实上可能正好相反?
  • @Jasper Blues — 我怀疑问题不在于 Swift 导入,而在于链接的实际目标文件
猜你喜欢
  • 2015-10-01
  • 1970-01-01
  • 2018-07-31
  • 1970-01-01
  • 2014-02-09
  • 1970-01-01
  • 2019-05-17
  • 2011-05-19
  • 1970-01-01
相关资源
最近更新 更多