Tengo un proyecto Swift para el que estoy intentando importar marcos basados en ObjC. El marco se encuentra en un directorio debajo de la ruta del proyecto y el proyecto hace referencia a él en Xcode. También se agrega al "Enlace binario con bibliotecas" en la página "Fases de compilación" del proyecto.
Sin embargo, por alguna razón, parece que no puedo incluir el marco en el archivo Bridging-Header. Obtuve el siguiente error:
BridgingHeader.h:5:9: error: 'Parse/Parse.h' file not found
#import <Parse/Parse.h>
^
<unknown>:0: error: failed to import bridging header 'BridgingHeader.h'
Cosas que he comprobado:
- El "Encabezado de compatibilidad de instalación de Objective-C" se establece en "SÍ".
- Las rutas de búsqueda de encabezados incluyen la ruta a los marcos.
Estoy seguro de que me estoy perdiendo algo, así que si alguien tiene alguna pista, sería genial.
swift
xcode
bridging-header
Dia Kharrat
fuente
fuente
Header Search Paths
, en este caso la pregunta ayudó: DRespuestas:
Encontré una solución:
SWIFT_OBJC_BRIDGING_HEADER
) debe establecerse en el nivel de destino y NO en el nivel de proyecto. Asegúrese de eliminar el valor de configuración en el nivel del proyecto.(para mí, parece un error de Xcode, ya que no sé por qué lo soluciona).
fuente
Tengo el mismo problema. Cambié todas mis importaciones de
#import "HMSegmentedControl.h"
a,#import <HMSegmentedControl/HMSegmentedControl.h>
por ejemplo.fuente
Tuve que agregar mi
lib
directorio en las rutas de búsqueda del encabezado de usuario:En mi caso, el
lib
directorio contiene el.a
archivo -library y algunos archivos de encabezado. Estos se incluyen en el archivo de encabezado de puente. Sin embargo, el compilador rápido no los encontraría. Solo cuando agregué${PROJECT_DIR}/lib
a la ruta de búsqueda de encabezado de usuario, construyó el objetivo de prueba.(Estoy usando Xcode 6.2 en Mavericks 10.9.5)
fuente
Encontramos el mismo mensaje de error, con una causa completamente diferente.
Preparar:
Cuando agregamos el segundo caso de prueba rápida, después de una limpieza (o en la máquina de un compañero de equipo), vimos este error al construir el objetivo de prueba de la unidad.
Se solucionó agregando una clase Obj-C ficticia al objetivo de la prueba unitaria.
fuente
Si usa cocoapods, intente reinstalar las vainas ejecutando el siguiente comando.
fuente
pod install
parece ser necesario para cualquier configuración nueva agregada ...Esto de alguna manera funcionó para mí:
fuente
Este error apareció al instalar con Cocoapods la biblioteca CocoaImageHashing. El problema era que las rutas de búsqueda estaban equivocadas. Entonces, en el nivel de destino, en Configuración de compilación -> Rutas de búsqueda -> Rutas de búsqueda de encabezado, las rutas correspondían a carpetas no existentes, por ejemplo, "$ {PODS_ROOT} / Headers / Public / CocoaImageHashing", cuando la estructura de carpetas Headers / Public / no existió. Agregué la ruta $ {PODS_ROOT} / CocoaImageHashing y el error desapareció.
fuente
Bueno, es un poco extraño, pero supongo que debe agregar un recurso a la fase "Copiar recursos de paquete" de su objetivo de prueba para que cargue todos los encabezados de su objetivo principal de la aplicación. En mi caso, agregué
main.storyboard
y se ocupó del error.fuente
Esto me sucedió después de agregar / cambiar el nombre de las configuraciones actuales y tiene sentido.
Cada configuración hace uso del conjunto de configuraciones generado por cocoapods, por lo que estas cosas deben coincidir.
Entonces, si agrega / cambia el nombre de las configuraciones, estas deberán usar los conjuntos de configuración correctos, y para eso, la ejecución
pod install
lo hará.fuente
Si ayuda a alguien.
En mi caso, mis archivos obj-c que se agregaron tienen una carpeta de referencia (las carpetas azules en xcode) y el encabezado no pudo encontrarlos. Acabo de agregar los archivos, no la carpeta, desde el buscador a xcode y resuelto.
fuente
Yo tuve el mismo problema. Para mí, la razón fue que estaba usando el mismo encabezado puente para mi aplicación y mi extensión Today. My Today Extension no incluye Parse, pero debido a que se definió en el encabezado de puente, estaba tratando de buscarlo. Creé un nuevo encabezado puente para mi extensión Today y el error desapareció.
fuente
Mi marco estaba funcionando antes y de repente dejó de funcionar, y ninguna de estas respuestas funcionaba para mí. Eliminé el marco en Build Phases> Link Binary With Libraries y lo volví a agregar. Empezó a trabajar de nuevo.
fuente
Tuve un problema y lo solucioné después de pasar 2 horas para encontrarlo. Mi entorno de la siguiente manera:
cocoapod 0.39.0
rápido 2.x
XCode 7.3.1
Pasos:
fuente
Acababa de duplicar un esquema existente y agregar otra configuración al proyecto. Tuve que agregar una configuración con el mismo nombre al proyecto del marco para que también se compilara en la misma
DerivedData/($AppName)/Build/Products/($CONFIGURATION_NAME)
carpeta. De lo contrario, el archivo .framework no se crea y, por lo tanto, no se puede importar.fuente
Hoy me encontré con el mismo problema cuando intentaba usar un pod escrito en Objective-C en mi proyecto Swift, ninguna de las soluciones anteriores parecía funcionar.
En el archivo pod que había
use_frameworks!
escrito. Al comentar esta línea y luego ejecutarlapod install
nuevamente, este problema se resolvió y el error desapareció.fuente
(Actualizado al 27 de mayo de 2017)
Xcode 8. Swift Project: importación de Objective C.
Cosas que saber:
fuente
Tuve un problema similar y solo una solución funcionó para mí. Probé todo lo sugerido y supe que configuré bien mi encabezado de puente, porque tenía otra biblioteca funcionando.
Cuando copié la biblioteca (arrastrar y soltar) en el proyecto, sin Cocoapods, solo después de eso pude importar encabezados sin errores.
Usé la biblioteca de Facebook / Shimmer.
fuente
Tuve un problema similar con las vainas. Básicamente, al intentar ejecutar mis pruebas de IU, Xcode se quejó de que faltaban pods. La solución a esto fue mucho más simple que cualquiera de las descritas anteriormente:
¡Trabajando!
Lo encontré en un hilo: https://github.com/CocoaPods/CocoaPods/issues/2695
Suena un poco como un error para las mazorcas de cacao, pero puedo ver las razones por las que podría ser un caso complicado.
fuente
En mi caso solo tuve que salir del simulador ...
fuente
Limpiar proyecto, Limpiar carpeta de compilación, Reiniciar Xcode. Simplemente elimino la ruta en el proyecto goto> Configuración de compilación> Buscar la palabra clave. Swift Compiler - General -> El encabezado Objective-C Bridging funcionó para mí.
fuente
Agosto de 2019
En mi caso, quería usar un protocolo Swift en un archivo de encabezado de Objective-C que proviene del mismo objetivo y para esto necesitaba usar una declaración directa del protocolo Swift para hacer referencia a él en la interfaz de Objective-C. Lo mismo debería ser válido para usar una clase Swift en un archivo de encabezado Objective-C. Para usar la declaración hacia adelante, vea el siguiente ejemplo de los documentos en Incluir clases Swift en los encabezados de Objective-C usando declaraciones hacia adelante :
fuente