Obtener el error "No hay tal módulo" usando Xcode, pero el marco está allí


Actualmente estoy codificando en Swift, y tengo un error:

No hay tal módulo Social

Pero no lo entiendo, porque el módulo está en mi proyecto, declarado en "Linked frameworks and Libraries" y en "Embedded Binarios".

Los frameworks están en Objective-C, así que escribí un Encabezado de Puente para él.

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

Módulo de error

Proyecto

Linkes Frameworks, Bibliotecas

Puente de cabecera

Author: Peter Mortensen, 2015-04-07

30 answers

No estoy seguro de por qué sucede esto, pero una forma de resolver el problema es ir a la configuración de compilación y definir las Rutas de búsqueda a una carpeta que contenga los marcos en cuestión. Si los frameworks se colocan en el directorio del proyecto, simplemente establezca la ruta de búsqueda del framework en $(SRCROOT) y establézcala en recursivo.

 226
Author: terhechte,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-02-26 22:35:26

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

Abrir xcodeproj en lugar de xcworkspace causará un error como este...

 343
Author: capikaw,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-11-26 20:15:41

No estoy muy seguro de por qué La respuesta de Martin R en los comentarios para la pregunta es tan ignorada:

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

Espero que esto ayude

 30
Author: Mike K,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:10:48

Tuve el mismo problema usando 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 tenía que hacer era cambiarlo a:

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

...y funcionó:)

 24
Author: nburk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-07-19 14:02:35

Por favor compare esta captura de pantalla con su configuración de compilación. Puede que esto funcione. Ir a la ruta de búsqueda del framework:

Introduzca la descripción de la imagen aquí

 18
Author: Krutarth Patel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-12-27 18:06:20

Asegúrese de que el nombre de sus configuraciones en los subproyectos coincida con el del proyecto "padre". Si el nombre de la configuración no coincide exactamente (distingue entre mayúsculas y minúsculas), Xcode abortará el proceso de archivo y mostrará el error "No such module ..."

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

Ver mi adjunto pantallazo.

Configuración configuración en el proyecto "padre"

Configuración configuración en 1er subproyecto

Configuración configuración en 2do sub proyecto

 18
Author: Groot,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-09-22 21:52:47

Yo también estaba experimentando este problema. La solución para mí fue que los esquemas de archivo entre los dos proyectos no coincidían. Tengo un xcworkspace con un proyecto framework y un proyecto app. El problema era que en el esquema de archivo para mi aplicación, estaba usando una configuración de compilación diferente a la que el marco estaba usando para su esquema de archivo. Configuré ambas configuraciones de compilación para Liberar, y eso solucionó el problema.

 16
Author: mikepj,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-06-30 14:01:48

Asumiendo que el Framework realmente está allí y en el camino, 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.

 8
Author: Brad Brighton,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-07 20:19:06

En mi caso, después de muchos intentos de averiguar lo que estaba haciendo mal importando un framework, finalmente descubrí que el framework en sí era el problema. Si no obtiene su framework de una fuente confiable, debe inspeccionar el framework y asegurarse de que contiene una carpeta Modules con un módulo.archivo modulemap dentro de él. Módulo If.modulemap no está presente, obtendrá el error " No such module 'MyFramework'".

Ejemplo que muestra la estructura de directorios de SwiftyJSON.marco

Si la carpeta Modules es falta el "MyFramework.swiftmodule " carpeta entonces se encontrará el marco, pero Xcode no sabrá acerca de su contenido por lo que obtendrá diferentes errores.

 7
Author: mcsheffrey,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-04-13 15:32:54

Asegúrese de que Find implicit Dependencies en Opciones de compilación en Scheme está activado!

 6
Author: Nik Kov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-12-19 12:15:45

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

El error es"módulo no encontrado"

  • Crear Podfile en el directorio raíz del proyecto
  • Instalar cocoapods (un gestor de dependencias para proyectos Swift e iOS)
  • Ejecutar pod install
  • Ir a la configuración de Compilación del proyecto:

    • Encuentre el encabezado Objective-c bridging en Swift compiler-Code Generation (Si no encuentra Swift compiler 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 (vea la imagen adjunta)introduzca la descripción de la imagen aquí
  • Cree un nuevo archivo de encabezado de puente: por ejemplo, TestProject-Bridging-Header.h y poner bajo Swift Compiler → Objective-C Generated Interface Header Name (ref, ver la imagen de arriba)

  • En TestProject-Bridging-Header.h archivo, escribir # importar " Mixpanel / Mixpanel.h "
  • En su archivo Swift el código debe ser: Importar Mixpanel (es decir, nombre de la biblioteca)

Eso es todo.

 6
Author: vikram jeet singh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-12-27 18:03:37

Ok, 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 por defecto. Ve a preferencias en xcode. Vaya a la pestaña ubicaciones en preferencias y establezca los datos derivados en Relativo. Espero que ayude.

 5
Author: harshitpthk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-07-24 06:58:47

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

Construir 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 compilación... doh.

 4
Author: Jordan Smith,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-04-02 22:30:22

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

 4
Author: pawan singh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-08-16 16:11:42

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

El solucionador de dependencias implícitas ignoró mi nuevo framework porque los requisitos de la plataforma de destino son más altos que los requisitos de la aplicación.

Después de ajustar el framework iOS Deployment Target para que coincida con mi application deployment target, el framework compiló y vinculó correctamente.

 4
Author: berbie,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-01-08 13:07:37

Estaba recibiendo el mismo error para

import Firebase

Pero luego noté que no estaba agregando pod a la sección de destino principal, sino solo agregando Test y TestUI en Podfile.

Con el comando

pod init

Para un proyecto xcode swift, se genera el siguiente 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, hay que asegurarse de que uno agrega pods a cualquier marcador de posición apropiado.

 3
Author: zeeawan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-02-20 04:14:26

Acabo de borrar mi cocoapod. Luego, hice una instalación pod para eliminarlo. Luego, simplemente lo agregué de nuevo en mi podfile y lo reinstalé. Eso hizo que funcionara. No sé por qué.

 2
Author: Daniel Jones,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-10-13 05:09:49

Los siguientes pasos funcionaron para mí.

  1. Salir de xcode
  2. Ejecutar "pod update" en la terminal
  3. Abre .xcworkspace y vuelve a construir.
 2
Author: john raja,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-08-14 05:07:18

Encontré que el Import Paths en el Build Settings estaba mal para un módulo personalizado (MySQL). Después de señalar que a la dirección correcta el mensaje se había ido.

 1
Author: Thomas Kilian,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-12-27 17:53:32

Arreglé esto con

Objetivos - > General - > Marcos y bibliotecas vinculados

Agregue el framework que debería estar en la parte superior de la carpeta Workspace. Dolor en el culo.

 1
Author: Magoo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-12-28 11:48:42

Solo para completar con otra posibilidad, este error puede ocurrir cuando la opción "Buscar dependencias implícitas" está desactivada. Vaya a Editar Esquema - > Construir.

introduzca la descripción de la imagen aquí

Luego marque esta opción.

introduzca la descripción de la imagen aquí

 1
Author: Hola Soy Edu Feliz Navidad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-03-06 11:21:12

En tu proyecto Podfile usted debe descomentar use_frameworks! y platform :ios, '9.0'

 1
Author: Monala92,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-06 11:34:15

Tuve este problema mientras desarrollaba 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
Author: iljn,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-07-25 16:04:28

1-En su podfile, elimine el pod que crea un problema y guarde el archivo 2-Ejecutar la instalación del pod 3-Volver a añadir el pod, guardar el archivo 4-Volver a ejecutar pod install

El problema debe ser resuelto.

HIH

 1
Author: Florian de Ponnat,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-08-23 18:33:42

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

 1
Author: Charlie Seligman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-10-04 14:38:38

Mi problema era con múltiples objetivos. Lo resolví con los siguientes enlaces: configure el archivo pod correctamente y corrija la configuración de compilación

Espero que alguien lo encuentre útil.

 1
Author: Alok,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-08-10 12:20:05

Ya había instalado pods. La compilación funcionó sin ningún problema cuando compilé 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

 1
Author: Vojta,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-08-14 07:59:35

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

 0
Author: Ray_Soham,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-04-07 06:11:55

Tuve un problema similar al cargar FacebookSDK, agregué ~/Documents / FacebookSDK (buscar donde están sus frameworks) a Rutas de búsqueda de framework en Configuración de compilación y después de eso pude importar el módulo FBSDKShareKit

 0
Author: kalafun,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-05-05 10:51:49

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

Ejemplo: Estoy usando SwiftyJSON y solo tengo el SwiftyJSON.swift file en el proyecto era todo lo que necesitaba. La instrucción using me estaba dando el error 'no such module' y sacándolo lo resolvió, y funciona bien.

 0
Author: markiyanm,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-12-27 17:54:45