Xcode 8 Beta - Conversione alla sintassi Swift corrente non riuscita: impossibile trovare l'host di prova


115

Ricevo un messaggio di errore quando provo a utilizzare Conversione guidata di Xcode 8. Dopo aver provato a riavviare, scaricare un nuovo codice ed eliminare i miei file DerivedData non posso sfuggire a questo errore:

Conversione alla sintassi Swift corrente non riuscita: impossibile trovare l'host di prova

Ho provato entrambe le opzioni che sono: Swift 2.3 e Swift 3. Dopo aver selezionato una versione ottengo immediatamente quell'errore.

Ecco uno screenshot dell'errore:

Messaggio di errore di conversione di Xcode 8


Ho lo stesso problema qui. Un altro progetto, più piccolo, converte bene.
Gondomir

Non sono sicuro di cosa potrebbe causarlo. Mi permette di selezionare i moduli da convertire. Tutti i moduli producono lo stesso errore.
thejuki

Cos'è il "test host"? Mostra il file DerivedData / ding / Build / Products / Debug-iphoneos / ding.app / ding che non esiste dopo l'eliminazione della cartella DerivedData.
Gondomir

Puoi anche controllare la versione in lingua Swift nelle impostazioni di build. Prova a utilizzare una versione inferiore di esso.
iPhoneDeveloper

Risposte:


306

Questo ha funzionato per me:

  1. Seleziona il progetto Xcode nel browser a sinistra.
  2. Fare clic sul target del test nella Generalscheda Progetto .
  3. Rivelare "Test". Nel mio progetto il pulsante a discesa "Applicazione host" era vuoto. Seleziona la tua applicazione host appropriata.
  4. Prova ora a costruire il tuo obiettivo di prova. Se ciò ha successo, dovrebbe essere eseguita anche la conversione della sintassi.

Ho avuto questo problema dopo aver installato Xcode 8 beta, quindi presumo che sia correlato.

Credito fotografico a @karthikkck inserisci qui la descrizione dell'immagine


5
Ha funzionato per me. Grazie! Per chiarimenti: fare clic e selezionare l'obiettivo del test sul selettore a sinistra del titolo della scheda Generale.
thejuki

5
Grazie, ha funzionato anche per me. Notando qui un dettaglio folle che può aiutare anche altri: il campo "Applicazione host" aveva già il valore corretto compilato, ma solo disattivarlo e tornare al suo valore originale lo ha fatto funzionare.
mz2

5
Per quel che vale, la mia applicazione host era impostata su "personalizzata". Il passaggio all'unica opzione disponibile ha risolto il problema. Grazie!
Mark McCorkle

1
Dove trovare quello menzionato nel passaggio 3? @Bharathi
JayVDiyk

2
Non ho una sezione di test nella mia scheda generale ??
Deuce bigalow

62

Mi è costato un po 'di tempo per trovare il menu a discesa "Applicazione host" menzionato nella risposta altrimenti molto utile di iluvcapra.

Quindi questo è ciò che intendeva:

Qui è dove trovi il menu a tendina. Seleziona il tuo obiettivo principale.

Qui è dove trovi il menu a tendina


22

Trovo una soluzione facile per questo, basta modificare il tuo schema e disabilitare i test.

inserisci qui la descrizione dell'immagine

Ed esegui di nuovo la conversione.


1
Grazie! questo ha funzionato per me, mentre la risposta accettata no.
daver

Questo. Anche se avevo già impostato correttamente l '"Applicazione host", non funzionava. Né ho potuto eseguire i test (ottenendo lo stesso messaggio di errore ...). il progetto non utilizza attivamente i test unitari in questo momento, ma dovrà esaminarlo a un certo punto ...
Nicolas Miari

5

+1 iluvcapra

In alternativa, utilizza l'editor di testo per rimuovere i seguenti due elementi dal tuo file MyAppSwift.xcodeproj / project.pbxproj , cerca TEST_HOST

Ora riapri il tuo progetto ed esegui di nuovo la procedura guidata di conversione.

    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;
    };

5

inserisci qui la descrizione dell'immagine

Prova questi passaggi:

  1. Seleziona il tuo progetto sul lato sinistro di Xcode.
  2. Vai a Target e seleziona i tuoi test di progetto.
  3. Selezionare la scheda Generale e selezionare il menu a discesa Applicazione host e scegliere la propria applicazione host.
  4. Converti o esegui il tuo progetto.

Provare questi passaggi ha funzionato per me.


0

Nel mio caso ho eliminato il mio obiettivo di test, quindi l'ho aggiunto di nuovo utilizzando i target + sotto e selezionando "iOs Unit Testing Bundle"

Per qualche motivo si è verificato un errore di compilazione, quindi ho modificato il "Percorso file di compilazione intermedio per configurazione: per il mio target di test in $ (PROJECT_TEMP_DIR) / $ (CONFIGURATION) sia per il debug che per il rilascio. Ciò ha permesso alla compilazione di funzionare.


-1

Risolvi il problema in 3 passaggi:

  1. Prima elimina il tuo obiettivo di prova
  2. Seleziona Modifica -> Converti -> Alla sintassi Swift corrente ... ed esegui la conversione
  3. Quindi aggiungi un nuovo target di test
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.