Linker-Fehler beim Zugriff auf das Anwendungsmodul in UI-Tests in Xcode 7.1

Ich versuche, einige UI-Tests in meinem Projekt zu implementieren. Solange ich es einfach halte, funktioniert alles einwandfrei: Notieren Sie den Testfall, fügen Sie einige Asserts hinzu und führen Sie dann den Test aus. Dies funktioniert einwandfrei. Wenn ich jedoch versuche, von meinem Test aus auf das Anwendungsmodul zuzugreifen, gibt der Linker einen Fehler aus (siehe unten):

In der Anwendungsquelldatei:

func foo() {
   assert(true)
}

In den UI-Tests:

import XCTest
@testable import MyApp

func testExample() {
    foo()
}

Error

Undefinierte Symbole für die Architektur i386: "MyApp.foo () -> ()", referenziert von: MyAppUITests.MyAppUITests.testExample (MyAppUITests.MyAppUITests) () -> () in MyAppUITests.o ld: Symbol (e) nicht gefunden für Architektur i386 clang: Fehler: Linker-Befehl mit Exit-Code 1 fehlgeschlagen (Aufruf mit -v)

Undefinierte Symbole für Architektur x86_64: "MyApp.foo () -> ()", referenziert von: MyAppUITests.MyAppUITests.testExample (MyAppUITests.MyAppUITests) () -> () in MyAppUITests.o ld: Symbol (e) nicht gefunden für die Architektur x86_64

Ich habe ein ähnliches Problem gemeldet:https: //forums.developer.apple.com/thread/2060 aber keine lösung. Scheint mir wie das@testable funktioniert einfach nicht richtig. Der Typ auf dem developer.apple.com hat versucht, das Problem zu umgehen, indem der Testhost und der Bundle Loader in den Einstellungen hinzugefügt wurden, aber ich denke nicht, dass dies der richtige Ansatz ist. Ich denke der@testable sollte einfach alles zum Laufen bringen, und im Moment sieht es nicht so aus. Jede Hilfe dankbar!

Antworten auf die Frage(6)

Ihre Antwort auf die Frage