resueltos requiere que planeación planeacion operaciones objetivo nivelacion estrategias estrategia elementos ejercicios caracteristicas agregada ios xcode unit-testing swift

ios - requiere - unidad agregada de prueba de destino a xcode: no se pudo importar el encabezado de puente no desaparecerá



planeacion agregada ejercicios resueltos (4)

En este punto, nunca he tenido que import MyTarget para que las pruebas unitarias funcionen en Swift.

Soluciones comunes

  • ¿Supongo que lo intentó, pero no quedó claro si agregó el encabezado puente a su objetivo de aplicación y objetivo de prueba al mismo tiempo?
  • Otra opción, que puede no ser la ideal, es agregar un encabezado de puente en su objetivo de prueba para que realmente tenga 2 encabezados de puente. Deberían lucir igual y serían una buena prueba.
  • Si usa $(SRCROOT) para hacer referencia a su ruta de encabezado de puente, asegúrese de que se esté evaluando para corregir la ruta.
  • Si todo lo demás falla, debería hacer el archivo diff de su .xcodeproj con el de su proyecto de trabajo y hacer coincidir los valores relevantes que puedan ser diferentes.

El sistema de encabezado de puente no es perfecto, pero aquí hay algunos problemas que he encontrado.

Agregué un nuevo objetivo de prueba a mi proyecto XCode. Mi proyecto tiene un código Swift y un código Objective-C, y tiene un encabezado puente. Al agregar el encabezado de puente a la configuración de compilación de UnitTesting o al realizar la import MyTarget , import MyTarget el error:

failed to import bridging header

He intentado:

  • Agregar el encabezado de puente al proyecto, las pruebas de unidad y la configuración de construcción del objetivo principal.
  • Cambiando defines modules a Yes .
  • Mover el archivo de encabezado de puente a la carpeta raíz.

También he intentado hacer un proyecto de muestra, que construyó y funcionó bien. Tomar todo lo que tengo en un nuevo proyecto limpio no es una opción en este punto.


La solución de @Victor Choy funciona para mí, pero tuve que mover el objetivo de prueba dentro del objetivo del producto así:

target ''YourProduct'' do # Pods for product target ''YourProductTests'' do inherit! :search_paths # Pods for product testing end end

Esto no funcionó para mí:

target ''YourProduct'' do # Pods for product end target ''YourProductTests'' do inherit! :search_paths # Pods for product testing end


Me enfrenté al mismo problema. Hice lo siguiente y se solucionó el problema de ''Error al importar el encabezado de puente''.

Pasos:

  1. Seleccione su proyecto -> Configuración de compilación -> Buscar '' Definir módulo '' -> dar ''SÍ''
  2. Copiar la ruta del encabezado de puente de Objective-C
  3. Seleccione su destino de prueba -> Configuración de compilación -> Compilador Swift - General -> Encabezado de puente de Objective-C -> Dar ruta de encabezado de puente de puente.
  4. Asegúrese de que las '' Rutas de búsqueda de encabezados '' de los objetivos de prueba contengan todos los encabezados en Objetivos de iOS. Agrégalos si falta alguno de los encabezados.
  5. Construir.

Referencia: Consulte este enlace.


Si usa Pod como administrador de paquetes, debe configurar la ruta de búsqueda, etc. Dé una forma sencilla,

Intenta agregar esto en Podfile

target ''YourProductTests'' do inherit! :search_paths # Pods for testing end

y pod install

Esto funciona para mi.

Si la solución anterior no lo hace por usted. Intenta configurar manualmente

  1. Haga clic en su destino de prueba -> Configuración de compilación -> pestaña: Todo y Combinado -> Compilador Swift - Generación de código -> Encabezado puente de Objective C: agregue su encabezado de puente xxx

  2. Verifique "Ruta de búsqueda", configure el valor de la Framework Search Path del Framework Search Path , Header Search Paths , Library Search Path acuerdo con su objetivo principal. Tal vez alguna ruta de búsqueda pierda aquí, agregue manualmente de nuevo.