Xcode 8 Beta - Konvertierung in aktuelle Swift-Syntax fehlgeschlagen: Testhost konnte nicht gefunden werden

115

Ich erhalte eine Fehlermeldung, wenn ich versuche, den Konvertierungsassistenten von Xcode 8 zu verwenden. Nach dem Neustart, dem Herunterladen von neuem Code und dem Löschen meiner DerivedData-Dateien kann ich diesem Fehler nicht entgehen:

In aktuelle Swift-Syntax konvertieren fehlgeschlagen: Testhost konnte nicht gefunden werden

Ich habe beide Optionen ausprobiert: Swift 2.3 und Swift 3. Nachdem ich eine Version ausgewählt habe, wird dieser Fehler sofort angezeigt.

Hier ist ein Screenshot des Fehlers:

Xcode 8 Fehlermeldung konvertieren

thejuki
quelle
Ich habe hier das gleiche Problem. Ein anderes, kleineres Projekt konvertiert gut.
Gondomir
Ich bin nicht sicher, was es verursachen könnte. Damit kann ich die zu konvertierenden Module auswählen. Alle Module erzeugen den gleichen Fehler.
Thejuki
Was ist der "Testhost"? Es zeigt die Datei DerivedData / ding / Build / Products / Debug-iphoneos / ding.app / ding, die nach dem Löschen des DerivedData-Ordners nicht mehr vorhanden ist.
Gondomir
Sie können auch die Swift-Sprachversion in den Build-Einstellungen überprüfen. Versuchen Sie, eine niedrigere Version davon zu verwenden.
iPhoneDeveloper

Antworten:

306

Das hat bei mir funktioniert:

  1. Wählen Sie das Xcode-Projekt im linken Browser aus.
  2. Klicken Sie auf der GeneralRegisterkarte Projekt auf Ihr Testziel .
  3. Geben Sie "Testen" an. In meinem Projekt war die Pulldown-Schaltfläche "Host-Anwendung" leer. Wählen Sie Ihre entsprechende Host-Anwendung aus.
  4. Versuchen Sie jetzt, Ihr Testziel zu erstellen. Wenn dies erfolgreich ist, sollte auch die Konvertierung der Syntax erfolgen.

Ich hatte dieses Problem nach der Installation der Xcode 8 Beta, daher gehe ich davon aus, dass dies damit zusammenhängt.

Bildnachweis an @karthikkck Geben Sie hier die Bildbeschreibung ein

iluvcapra
quelle
5
Das hat bei mir funktioniert. Vielen Dank! Zur Verdeutlichung: Klicken Sie auf und wählen Sie Ihr Testziel in der Auswahl links neben dem Titel der Registerkarte Allgemein aus.
Thejuki
5
Danke, hat auch für mich gearbeitet. Hier ein verrücktes Detail, das möglicherweise auch anderen hilft: Im Feld "Host-Anwendung" wurde bereits der richtige Wert ausgefüllt, aber durch einfaches Ausschalten und Zurücksetzen auf den ursprünglichen Wert funktionierte es.
mz2
5
Für das, was es wert ist, wurde meine Host-Anwendung auf "benutzerdefiniert" gesetzt. Durch Ändern der einzigen verfügbaren Option wurde das Problem behoben. Vielen Dank!
Mark McCorkle
1
Wo finde ich die in Schritt 3 erwähnte? @ Bharathi
JayVDiyk
2
Ich habe keinen Testabschnitt in meinem allgemeinen Tab?
Deuce Bigalow
62

Es hat mich ein bisschen Zeit gekostet, den Pulldown "Host Application" zu finden, der in der ansonsten sehr hilfreichen Antwort von iluvcapra erwähnt wird.

Das meinte er also:

Hier finden Sie das Pulldown-Menü. Wählen Sie Ihr Hauptziel.

Hier finden Sie das Pulldown-Menü

Oliver Reinhard
quelle
22

Ich finde eine einfache Lösung dafür, bearbeite einfach dein Schema und deaktiviere Tests.

Geben Sie hier die Bildbeschreibung ein

Führen Sie die Konvertierung erneut aus.

Sei nie
quelle
1
Vielen Dank! Dies funktionierte für mich, während die akzeptierte Antwort dies nicht tat.
Daver
Dies. Obwohl ich die "Host-Anwendung" bereits richtig eingestellt hatte, funktionierte sie nicht. Ich konnte die Tests auch nicht ausführen (die gleiche Fehlermeldung wird angezeigt ...). Das Projekt verwendet
derzeit
5

+1 Iluvcapra

Verwenden Sie alternativ den Texteditor, um die folgenden zwei Elemente aus Ihrer MyAppSwift.xcodeproj / project.pbxproj- Datei zu entfernen , und suchen Sie nach TEST_HOST

Öffnen Sie nun Ihr Projekt erneut und führen Sie den Konvertierungsassistenten erneut aus.

    4EFFFAE51B53D5D8003CD25A /* Debug */ = {
        isa = XCBuildConfiguration;
        buildSettings = {
            BUNDLE_LOADER = "$(TEST_HOST)";
            FRAMEWORK_SEARCH_PATHS = (
                "$(SDKROOT)/Developer/Library/Frameworks",
                "$(inherited)",
            );
            GCC_PREPROCESSOR_DEFINITIONS = (
                "DEBUG=1",
                "$(inherited)",
            );
            INFOPLIST_FILE = "AF SwiftTests/Info.plist";
            LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
            PRODUCT_NAME = "FA SwiftTests";
            TEST_HOST = "$(BUILT_PRODUCTS_DIR)/AF Swift.app/AF Swift";
        };
        name = Debug;
    };
    4EFFFAE61B53D5D8003CD25A /* Release */ = {
        isa = XCBuildConfiguration;
        buildSettings = {
            BUNDLE_LOADER = "$(TEST_HOST)";
            FRAMEWORK_SEARCH_PATHS = (
                "$(SDKROOT)/Developer/Library/Frameworks",
                "$(inherited)",
            );
            INFOPLIST_FILE = "AF SwiftTests/Info.plist";
            LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
            PRODUCT_NAME = "FA SwiftTests";
            TEST_HOST = "$(BUILT_PRODUCTS_DIR)/AF Swift.app/AF Swift";
        };
        name = Release;
    };
Scott Nguyen
quelle
5

Geben Sie hier die Bildbeschreibung ein

Bitte versuchen Sie diese Schritte:

  1. Wählen Sie Ihr Projekt auf der linken Seite von Xcode aus.
  2. Gehen Sie zu Ziele und wählen Sie Ihre Projekttests aus.
  3. Wählen Sie die Registerkarte Allgemein und wählen Sie die Dropdown-Liste Hostanwendung und wählen Sie Ihre Hostanwendung aus.
  4. Konvertieren Sie Ihr Projekt oder führen Sie es aus.

Das Ausprobieren dieser Schritte hat bei mir funktioniert.

Karthickkck
quelle
0

In meinem Fall habe ich mein Testziel gelöscht, es dann mit den unten stehenden + Zielen wieder hinzugefügt und "iOs Unit Testing Bundle" ausgewählt.

Aus irgendeinem Grund ist ein Kompilierungsfehler aufgetreten, daher habe ich den Pfad "Zwischenkonfigurationsdateien pro Konfiguration pro Konfiguration: für mein Testziel in $ (PROJECT_TEMP_DIR) / $ (CONFIGURATION) für Debug und Release geändert. Dadurch konnte die Kompilierung funktionieren.

Mark80
quelle
-1

Beheben Sie dies in 3 Schritten:

  1. Löschen Sie zuerst Ihr Testziel
  2. Wählen Sie Bearbeiten -> Konvertieren -> In aktuelle Swift-Syntax ... und führen Sie die Konvertierung durch
  3. Fügen Sie dann ein neues Testziel hinzu
Marmoy
quelle