Obteniendo el error “No such module” usando Xcode, pero el framework está ahí

Actualmente estoy progtwigndo en Swift, y tengo un error:

No hay tal módulo Social

Pero no entiendo, porque el módulo está en mi proyecto, declarado en “Marcos y bibliotecas vinculados” y en “Binarios incrustados”.

Los marcos están en Objective-C, así que escribí un Encabezado de puente para ello.

Por favor, ¿cómo puedo hacer que Xcode reconozca el marco?

Módulo de error

Proyecto

Marcos de enlaces, bibliotecas

Puente de encabezado

No estoy seguro de por qué sucede esto, pero una forma de resolver su problema es ir a la configuración de comstackción y definir las rutas de búsqueda del marco de trabajo a una carpeta que contenga los marcos en cuestión. Si los marcos se colocan en el directorio de su proyecto, simplemente configure la ruta de búsqueda del marco en $(SRCROOT) y $(SRCROOT) como recursivo.

En caso de que sea viernes por la tarde o en cualquier momento después de la 1am:

Al abrir xcodeproj lugar de xcworkspace se producirá un error como este …

No estoy muy seguro de por qué la respuesta de Martin R en los comentarios a la pregunta es tan desatendida:

Asegúrese de haber intentado omitir la importación del marco, ya que ya está agregado con el encabezado puente .

Espero que esto ayude

Tuve el mismo problema al usar Cocoapods y Swift . No noté las siguientes líneas en el Podfile:

 # Uncomment this line if you're using Swift # use_frameworks! 

Entonces, todo lo que tuve que hacer fue cambiarlo a:

 # Uncomment this line if you're using Swift use_frameworks! 

… aa y funcionó 🙂

Estaba experimentando este problema también. La solución para mí fue que los esquemas de archivo entre los dos proyectos no coincidían. Tengo un xcworkspace con un proyecto de framework y un proyecto de aplicación. El problema era que en el esquema de Archivo para mi aplicación, estaba usando una Configuración de comstackción diferente de la que usaba el marco para su esquema de Archivo. Configuré Configuraciones de comstackción para Liberar, y eso solucionó el problema.

Por favor, compare esta captura de pantalla con su configuración de comstackción. Puede este trabajo. Ir a la ruta de búsqueda de marcos:

Ingrese la descripción de la imagen aquí

Asegúrese de que la denominación de sus configuraciones en los subproyectos coincida con la del proyecto “principal”. Si los nombres de configuración no coinciden exactamente (distingue entre mayúsculas y minúsculas), Xcode abortará el proceso de archivado y mostrará el error “No such module …”

Es decir, si tiene un proyecto “principal” con una configuración llamada “AppStore”, debe asegurarse de que todos los subproyectos también tengan este nombre de configuración.

Ver mis capturas de pantalla adjuntas.

Configuración de configuración en el proyecto

Configuración de configuración en el primer proyecto secundario

Configuración de configuración en el segundo proyecto secundario

Asumiendo que el Marco realmente está ahí y en la ruta, etc … elimine el directorio ~ / Library / Developer / Xcode / DerivedData / ModuleCache (y limpie el proyecto y elimine los datos derivados específicos del proyecto para una buena medida).

Cuando realiza la limpieza estándar, el directorio ModuleCache no se reconstruye.

En mi caso, después de muchos bashs de descifrar qué estaba haciendo mal importando un marco, finalmente descubrí que el marco en sí era el problema. Si no obtiene su infraestructura de una fuente confiable, debe inspeccionar la infraestructura y asegurarse de que contiene una carpeta de Módulos con un archivo module.modulemap dentro de ella. Si module.modulemap no está presente, obtendrá el error “No such module ‘MyFramework'”.

Ejemplo que muestra la estructura de directorios de SwiftyJSON.framework

Si a la carpeta Módulos le falta la carpeta “MyFramework.swiftmodule”, se encontrará el marco, pero Xcode no sabrá su contenido, por lo que obtendrá diferentes errores.

También encontré el mismo error hace unos días. Así es como resolví el problema:

El error es “módulo no encontrado”

  • Crea Podfile en tu directorio de proyecto raíz
  • Instalar cocoapods (un administrador de dependencia para proyectos Swift y iOS)
  • Ejecutar pod instalar
  • Vaya a Configuraciones de comstackción del proyecto:

    • Encuentre el encabezado de puente de Objective-c en el comstackdor Swift – Generación de código (si no encuentra el comstackdor Swift aquí, probablemente agregue un nuevo archivo Swift al proyecto)
    • Arrastre y suelte el archivo de encabezado de la biblioteca desde el lado izquierdo al encabezado de puente (ver imagen adjunta) enter image description here
  • Cree un nuevo archivo de encabezado de puente: por ejemplo, TestProject-Bridging-Header.h y colóquelo en Swift Compiler → Objective-C Generated Interface Header Name (ref, vea la imagen de arriba)

  • En el archivo TestProject-Bridging-Header.h, escriba #import “Mixpanel / Mixpanel.h”
  • En su archivo Swift, el código debería ser: Importar Mixpanel (es decir, nombre de la biblioteca)

Eso es todo.

Bien, cómo se resolvió el mismo problema para mí fue establecer la ubicación de los datos derivados en relación con el directorio del espacio de trabajo en lugar de mantenerlo como predeterminado. Ve a preferencias en xcode. Vaya a la pestaña de ubicaciones en las preferencias y establezca los datos Derivados en Relativo. Espero eso ayude.

¡Asegúrese de que las Find implicit Dependencies en Find implicit Dependencies en Scheme estén activadas!

Si está creando una plataforma como tvOS, asegúrese de tener seleccionado un simulador de Apple TV (es decir, emparejamiento).

Crear una aplicación de tvOS con un simulador de iOS seleccionado me dio exactamente este error. Pasé la mayor parte de una hora buscando todo tipo de problemas de comstackción … doh.

Estaba obteniendo el mismo error ya que agregué un par de marcos usando Cocoapods . Si estamos usando Pods en nuestro proyecto, deberíamos usar xcodeworkspace lugar de xcodeproject . Para ejecutar el proyecto a través de xcodebuild, -workspace parámetro -workspace en el comando xcodebuild y funcionó perfectamente.

Estaba recibiendo el mismo error para

 import Firebase 

Pero luego me di cuenta de que no estaba agregando pod a la sección de destino principal, sino que solo agregaba objectives TestUI y TestUI en Podfile.

Con el comando

 pod init 

para un proyecto rápido xcode, se genera el siguiente archivo Podfile

 # Uncomment the next line to define a global platform for your project # platform :ios, '9.0' target 'MyApp' do # Comment the next line if you're not using Swift and don't want to use dynamic frameworks use_frameworks! # Pods for MyApp target 'MyAppTests' do inherit! :search_paths # Pods for testing end target 'MyAppUITests' do inherit! :search_paths # Pods for testing end end 

Por lo tanto, debe asegurarse de que se agreguen pods a cualquier marcador de posición apropiado.

En mi caso, la aplicación IPHONEOS_DEPLOYMENT_TARGET se estableció en 9.3, mientras que en mi marco recién creado se configuró en 10.2

El resolvedor de dependencias implícito ignoró mi nuevo marco porque los requisitos de la plataforma objective son más altos que los requisitos de la aplicación.

Después de ajustar el marco de destino de implementación de iOS para que coincida con mi destino de implementación de la aplicación, el marco comstackdo y vinculado con éxito.

Acabo de eliminar mi cocoapod. Luego, hice una instalación de pod para eliminarlo. Luego, lo agregué nuevamente a mi archivo de pod y lo reinstalé. Eso lo hizo funcionar. No estoy seguro por qué.

Los siguientes pasos me funcionaron.

  1. Salir de xcode
  2. Ejecuta "pod update" en la terminal
  3. Abra .xcworkspace y .xcworkspace nuevo.

Descubrí que las Import Paths en las Build Settings eran incorrectas para un módulo personalizado (MySQL). Después de señalar eso en la dirección correcta, el mensaje desapareció.

Lo arreglé con

Objetivos -> General -> Marcos enlazados y bibliotecas

Agregue el marco que debe estar en la parte superior de la carpeta Workspace . Dolor en el culo

Solo por completar con otra posibilidad, este error puede ocurrir cuando la opción “Buscar dependencias implícitas” está desmarcada. Vaya a Editar esquema -> Construir.

enter image description here

Luego verifica estas opciones.

enter image description here

¡En tu proyecto Podfile debes descomentar use_frameworks! y platform :ios, '9.0'

Tuve este problema al desarrollar un Pod personalizado. Encontré que solo necesitaba especificar la dependencia en mi Procfile:

 Pod::Spec.new do |s| # ... other declarations s.dependency 'Alamofire', '~> 4.3' end 

1 – En su podfile, elimine el pod que crea un problema y guarde el archivo 2 – Ejecute la instalación del pod 3 – Vuelva a agregar el pod, guarde el archivo 4 – Vuelva a ejecutar la instalación del pod

El problema debe ser resuelto.

HIH

Estaba recibiendo este problema porque establecí el objective equivocado en el archivo podfile (el proyecto en sí en lugar de la sección UITests).

Ya había instalado pods. La comstackción funcionó sin problemas cuando construí la aplicación en mi dispositivo, pero el archivo no funcionó. Solo corro:

 pod install 

no se instalaron nuevos pods, solo el archivo .xcodeproj se regeneró y el archivo comenzó a funcionar

Si todos los métodos anteriores no funcionaron para usted, como en mi caso. No hubo ningún problema el día anterior, pero a la mañana siguiente me enfrenté al mismo error. Acabo de eliminar los marcos eliminando referencias y de nuevo los agregué. Sé que esto puede sonar tonto, pero voil funcionó.

Tuve un problema similar al cargar FacebookSDK, agregué ~ / Documents / FacebookSDK (busque dónde están sus marcos) a las rutas de búsqueda de Framework en la configuración de Build y después de eso pude importar el módulo FBSDKShareKit

Por lo que vale (soy nuevo en esto usando Xcode 7.2 / Swift 2), pero noté que solo con tener el archivo .swift de la biblioteca en el directorio del proyecto automáticamente le da acceso y no necesita la instrucción using.

Ejemplo: estoy usando SwiftyJSON y solo tener el archivo SwiftyJSON.swift en el proyecto era todo lo que necesitaba. La sentencia using realmente me estaba dando el error ‘no such module’ y resolverlo lo soluciona, y funciona bien.

SI ha hecho todo lo anterior y todavía nada le ha funcionado, intente agregar $(inherited) en la ruta de búsqueda de Framework de la configuración de comstackción de su objective.