我正在使用Swift 2和XCode7构建iOS 9应用程序。
我的应用在将其部署到手机时运行正常。 但是当我运行任何单元测试时,我会收到很多类的以下错误消息:
类_TtC5 AppName 19 ClassName 在/ Users / 用户名 / Library / Developer / CoreSimulator / Devices / UUID中实现 / data / Containers / Bundle / Application / UUID / AppName .app / AppName 和/ Users / 用户名< /强> / 路径/到/工作区 / DerivedData /的 AppName的 /建造/产品/调试-iphonesimulator /的 AppName的 .xctest /的 AppName的即可。将使用两者之一。哪一个未定义。
有什么想法吗?
答案 0 :(得分:4)
仅将测试类添加到测试目标,而不添加任何iPhone应用程序类。然后,只需将您的应用名称作为模块导入到测试类之上,即可访问所有应用类。
import MyAppName
答案 1 :(得分:1)
运行测试套件时重复的类实现:就我而言,由于测试目标具有主机应用,因此您无需链接第三方框架。我必须从“构建设置”中清除“其他链接器标记”(OTHER_LDFLAGS
),因为它已链接到工作区的所有CocoaPods。
答案 2 :(得分:1)
我在XCTest上遇到了相同的错误。记住选择Allow testing Host Application APIs
。
然后像其他人所说的那样,在Build Phases
中输入XCTest Target
,确保Compile Sources
中有零个文件已经在Host Application
中进行编译。
答案 3 :(得分:0)
@Mundi的回答在某些情况下是正确的。
但是,我遇到了同样的错误,导致它的原因是Cocoa Pods的libPods.a
文件在应用程序目标和测试目标中被链接。