Xcode 8 Beta - Falló la conversión a la sintaxis Swift actual: no se pudo encontrar el host de prueba

115

Recibo un mensaje de error cuando intento utilizar el Asistente de conversión de Xcode 8. Después de intentar reiniciar, descargar código nuevo y eliminar mis archivos DerivedData, no puedo escapar de este error:

Falló la conversión a la sintaxis Swift actual: no se pudo encontrar el host de prueba

He probado las dos opciones que son: Swift 2.3 y Swift 3. Después de seleccionar una versión, aparece ese error al instante.

Aquí hay una captura de pantalla del error:

Mensaje de error de conversión de Xcode 8

thejuki
fuente
Tengo el mismo problema aquí. Otro proyecto, más pequeño, se convierte bien.
Gondomir
No estoy seguro de qué podría estar causándolo. Me permite seleccionar los módulos para convertir. Todos los módulos producen el mismo error.
thejuki
¿Qué es el "host de prueba"? Muestra el archivo DerivedData / ding / Build / Products / Debug-iphoneos / ding.app / ding que no existe después de eliminar la carpeta DerivedData.
Gondomir
También puede verificar la versión de idioma Swift en la configuración de compilación. Intente utilizar una versión más baja.
iPhoneDeveloper

Respuestas:

306

Esto funcionó para mí:

  1. Seleccione el proyecto Xcode en el navegador de la izquierda.
  2. Haga clic en su objetivo de prueba en la Generalpestaña del Proyecto .
  3. Divulgar "Pruebas". En mi proyecto, el botón desplegable "Aplicación de host" estaba en blanco. Seleccione su aplicación de host adecuada.
  4. Intente construir su objetivo de prueba ahora. Si eso tiene éxito, la conversión de sintaxis también debería hacerlo.

Tuve este problema después de instalar Xcode 8 beta, así que supongo que está relacionado.

Crédito de la imagen a @karthikkck ingrese la descripción de la imagen aquí

iluvcapra
fuente
5
Eso funcionó para mí. ¡Gracias! Para aclarar: Haga clic y seleccione su objetivo de prueba en el selector a la izquierda del título de la pestaña General.
thejuki
5
Gracias, también funcionó para mí. Observar aquí un detalle loco que también puede ayudar a otros: el campo "Aplicación de host" ya tenía el valor correcto, pero simplemente alternarlo y volver a su valor original lo hizo funcionar.
mz2
5
Por lo que vale, mi aplicación de host se configuró como "personalizada". Cambiar a la única opción disponible solucionó el problema. ¡Gracias!
Mark McCorkle
1
¿Dónde encontrar el mencionado en el paso 3? @Bharathi
JayVDiyk
2
¿No tengo una sección de prueba en mi pestaña general?
Deuce bigalow
62

Me costó un poco de tiempo encontrar el menú desplegable de "Aplicación de host" mencionado en la respuesta de iluvcapra que, por lo demás, es muy útil.

Entonces esto es lo que quiso decir:

Aquí es donde se encuentra el menú desplegable. Seleccione su objetivo principal.

Aquí es donde se encuentra el menú desplegable.

Oliver Reinhard
fuente
22

Encuentro una solución fácil para esto, solo edite su esquema y deshabilite las pruebas.

ingrese la descripción de la imagen aquí

Y vuelva a ejecutar la conversión.

Nunca seas
fuente
1
¡Gracias! esto funcionó para mí, mientras que la respuesta aceptada no lo hizo.
daver
Esta. Aunque ya tenía la "Aplicación de host" configurada correctamente, no funcionó. Tampoco pude ejecutar las pruebas (obteniendo el mismo mensaje de error ...). el proyecto no usa activamente pruebas unitarias en este momento, pero tendrá que investigar eso en algún momento ...
Nicolas Miari
5

+1 iluvcapra

Alternativamente, use el editor de texto para eliminar los siguientes dos elementos de su archivo MyAppSwift.xcodeproj / project.pbxproj , busque TEST_HOST

Ahora, vuelva a abrir su proyecto y ejecute el asistente de conversión nuevamente.

    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
fuente
5

ingrese la descripción de la imagen aquí

Intente estos pasos:

  1. Seleccione su proyecto en el lado izquierdo de Xcode.
  2. Vaya a Objetivos y seleccione sus Pruebas de proyecto.
  3. Seleccione la pestaña General y seleccione el menú desplegable Aplicación de host y elija su Aplicación de host.
  4. Convierta o ejecute su proyecto.

Probar estos pasos funcionó para mí.

Karthickkck
fuente
0

En mi caso, eliminé mi objetivo de pruebas, luego lo volví a agregar usando los objetivos + a continuación y seleccionando "Paquete de pruebas unitarias de iOs"

Por alguna razón, esto obtuvo un error de compilación, así que cambié la "Ruta de archivos de compilación intermedia por configuración: para mi objetivo de prueba a $ (PROJECT_TEMP_DIR) / $ (CONFIGURATION) tanto para la depuración como para la publicación. Esto permitió que la compilación funcionara.

Mark80
fuente
-1

Solucione esto en 3 pasos:

  1. Primero elimine su objetivo de prueba
  2. Luego seleccione Editar -> Convertir -> A la sintaxis Swift actual ... y realice la conversión
  3. Luego agregue un nuevo objetivo de prueba
Marmoy
fuente