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
aYes
. - 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:
- Seleccione su proyecto -> Configuración de compilación -> Buscar '' Definir módulo '' -> dar ''SÍ''
- Copiar la ruta del encabezado de puente de Objective-C
- 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.
- 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.
- 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
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
Verifique "Ruta de búsqueda", configure el valor de la
Framework Search Path
delFramework 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.