Xcode 8 Beta - nie powiodła się konwersja do bieżącej składni Swift: nie można znaleźć hosta testowego

115

Otrzymuję komunikat o błędzie, gdy próbuję użyć Kreatora konwersji Xcode 8. Po ponownym uruchomieniu, pobraniu nowego kodu i usunięciu moich plików DerivedData nie mogę uniknąć tego błędu:

Konwersja do bieżącej składni Swift nie powiodła się: nie można znaleźć hosta testowego

Wypróbowałem obie opcje: Swift 2.3 i Swift 3. Po wybraniu wersji natychmiast otrzymuję ten błąd.

Oto zrzut ekranu błędu:

Komunikat o błędzie konwersji Xcode 8

thejuki
źródło
Mam tutaj ten sam problem. Inny, mniejszy projekt konwertuje dobrze.
Gondomir
Nie jestem pewien, co może to powodować. Pozwala mi wybrać moduły do ​​konwersji. Wszystkie moduły generują ten sam błąd.
thejuki
Co to jest „host testowy”? Pokazuje plik DerivedData / ding / Build / Products / Debug-iphoneos / ding.app / ding, który nie istnieje po usunięciu folderu DerivedData.
Gondomir
Możesz również sprawdzić wersję językową Swift w ustawieniach kompilacji. Spróbuj użyć niższej wersji.
iPhoneDeveloper

Odpowiedzi:

306

To zadziałało dla mnie:

  1. Wybierz projekt Xcode w przeglądarce po lewej stronie.
  2. Kliknij cel testowy na Generalkarcie Projekt .
  3. Ujawnij „Testowanie”. W moim projekcie przycisk rozwijany „Aplikacja hosta” był pusty. Wybierz odpowiednią aplikację hosta.
  4. Spróbuj teraz zbudować swój cel testowy. Jeśli to się powiedzie, konwersja składni również powinna.

Miałem ten problem po zainstalowaniu Xcode 8 beta, więc zakładam, że jest to powiązane.

Zdjęcie dzięki @karthikkck wprowadź opis obrazu tutaj

iluvcapra
źródło
5
To zadziałało dla mnie. Dzięki! Dla wyjaśnienia: Kliknij i wybierz cel testu na selektorze po lewej stronie tytułu karty Ogólne.
thejuki
5
Dzięki, dla mnie też pracował. Zwracając uwagę na szalony szczegół, który może pomóc również innym: pole „Aplikacja hosta” miało już wypełnioną właściwą wartość, ale samo wyłączenie i powrót do pierwotnej wartości sprawiło, że działało.
mz2
5
Na ile to jest warte, moja aplikacja hosta została ustawiona na „niestandardową”. Zmiana na jedyną dostępną opcję rozwiązała problem. Dzięki!
Mark McCorkle
1
Gdzie znaleźć ten wymieniony w kroku 3? @Bharathi
JayVDiyk
2
Nie mam sekcji testowania na mojej karcie ogólnej?
Deuce bigalow
62

Znalezienie menu rozwijanego „Aplikacja hosta” wspomnianego w bardzo pomocnej odpowiedzi autorstwa iluvcapra kosztowało mnie trochę czasu .

Więc to miał na myśli:

Tutaj znajdziesz menu rozwijane. Wybierz swój główny cel.

Tutaj znajdziesz menu rozwijane

Oliver Reinhard
źródło
22

Znajduję łatwe rozwiązanie tego problemu, po prostu edytuj swój schemat i wyłącz testy.

wprowadź opis obrazu tutaj

I ponownie uruchom konwersję.

Nigdy być
źródło
1
dzięki! to zadziałało dla mnie, podczas gdy zaakceptowana odpowiedź nie.
daver,
To. Mimo że „Aplikacja hosta” była już prawidłowo ustawiona, nie działała. Nie mogłem też przeprowadzić testów (otrzymując ten sam komunikat o błędzie ...). projekt nie korzysta obecnie aktywnie z testów jednostkowych, ale w pewnym momencie będzie musiał się temu przyjrzeć ...
Nicolas Miari
5

+1 iluvcapra

Alternatywnie, użyj edytora tekstu, aby usunąć następujące dwa elementy z pliku MyAppSwift.xcodeproj / project.pbxproj , wyszukaj TEST_HOST

Teraz ponownie otwórz projekt i ponownie uruchom kreatora konwersji.

    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
źródło
5

wprowadź opis obrazu tutaj

Spróbuj wykonać następujące kroki:

  1. Wybierz swój projekt po lewej stronie Xcode.
  2. Przejdź do celów i wybierz testy projektu.
  3. Wybierz kartę Ogólne i wybierz listę rozwijaną Aplikacja hosta, a następnie wybierz aplikację hosta.
  4. Przekonwertuj lub uruchom projekt.

Wypróbowanie tych kroków zadziałało dla mnie.

Karthickkck
źródło
0

W moim przypadku usunąłem cel testów, a następnie dodałem go ponownie, używając + poniżej celów i wybierając „Pakiet testów jednostkowych iOs”

Z jakiegoś powodu wystąpił błąd kompilacji, więc zmieniłem „Pośrednią ścieżkę budowania plików dla konfiguracji: dla mojego celu testowego na $ (PROJECT_TEMP_DIR) / $ (KONFIGURACJA)” zarówno dla debugowania, jak i wydania. Pozwoliło to na działanie kompilacji.

Mark80
źródło
-1

Napraw to w 3 krokach:

  1. Najpierw usuń cel testowy
  2. Wybierz Edit -> Convert -> To current Swift syntax ... i wykonaj konwersję
  3. Następnie dodaj nowy cel testowy
Marmoy
źródło