Actualmente estoy codificando en Swift, y tengo un error:
No existe tal módulo Social
Pero no entiendo, porque el módulo está en mi proyecto, declarado en "Marcos vinculados y bibliotecas" y en "Binarios incrustados".
El marco está en Objective-C, así que escribí un encabezado de puente para él.
Por favor, ¿cómo puedo hacer que Xcode reconozca el marco?
#import "Social/Social.h"
platform :ios, '10.0'
. Esa fue la solución.Respuestas:
No estoy seguro de por qué sucede esto, pero una forma de resolver su problema es ir a la configuración de compilación y definir las Rutas de búsqueda del marco 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 recursiva.fuente
Project Build Settings
lugar deTarget Build Settings
.En caso de que sea viernes por la tarde o en cualquier momento después de la 1 a. M .:
Abrir en
xcodeproj
lugar dexcworkspace
provocará un error como este ...fuente
Asegúrese de que el nombre de sus configuraciones en los subproyectos coincida con el del proyecto "principal". Si el nombre de la configuración no coincide exactamente (distingue entre mayúsculas y minúsculas), Xcode cancelará el proceso de archivo y mostrará el error "No existe tal módulo ..."
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.
fuente
Debug
yDistribution
ya su proyecto padre estaba tratando de construir paraRelease
. La solución fue hacer una copia delDistribution
proyecto secundario y cambiar el nombre de esa copiaRelease
.No estoy muy seguro de por qué se ignora la respuesta de Martin R en los comentarios a la pregunta:
Asegúrese de haber intentado simplemente omitir la importación del marco ya que ya se agregó con el encabezado de puente .
Espero que esto ayude
fuente
Tuve el mismo problema al usar Cocoapods y Swift . No noté las siguientes líneas en el Podfile:
Entonces, todo lo que tuve que hacer fue cambiarlo a:
... y funcionó :)
fuente
Compare esta captura de pantalla con su configuración de compilación. Puede que esto funcione. Vaya a la ruta de búsqueda del marco:
fuente
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 marco 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 compilación diferente a la que usaba el marco para su esquema de archivo. Configuré ambas configuraciones de compilación para liberar, y eso solucionó el problema.
fuente
Los siguientes pasos me funcionaron.
"pod update"
en la terminal.xcworkspace
y construir de nuevo.fuente
pod install
que funciona.En mi caso, después de muchos intentos de descubrir qué estaba haciendo mal al importar un marco, finalmente descubrí que el marco en sí era el problema. Si no obtiene su marco de una fuente confiable, debe inspeccionar el marco y asegurarse de que contenga una carpeta Módulos con un archivo module.modulemap dentro. Si module.modulemap no está presente, obtendrá el error "No existe tal módulo 'MyFramework'".
Si a la carpeta Módulos le falta la carpeta "MyFramework.swiftmodule", se encontrará el marco, pero Xcode no sabrá sobre su contenido, por lo que obtendrá diferentes errores.
fuente
Asumiendo que el Framework realmente está allí 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.
fuente
Lo que funcionó para mí es esta solución a otra pregunta. Cerrar Xcode y reabrir el proyecto como espacio de trabajo.
Vaya a la carpeta de su proyecto y abra el
.xcodeworkspace
archivo.Una vez que abra el espacio de trabajo (en lugar del proyecto), los Pods deberían aparecer como proyecto de nivel superior en Project Navigator.
fuente
¡Asegúrese de que las
Find implicit Dependencies
opciones de compilación en Scheme estén activadas!fuente
También encontré el mismo error hace unos días. Así es como resolví el problema:
El error es "módulo no encontrado"
Vaya a Configuración de compilación del proyecto:
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)
Eso es todo.
fuente
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 predeterminado. Ir a las preferencias en xcode. Vaya a la pestaña de ubicaciones en las preferencias y configure los Datos derivados en Relativo. Espero eso ayude.
fuente
Estaba recibiendo el mismo error para
Pero luego noté que no estaba agregando pod a la sección de destino principal, sino solo agregando a los objetivos Test y TestUI en Podfile.
Con el comando
para un proyecto xcode swift, se genera el siguiente Podfile
Por lo tanto, debe asegurarse de agregar uno a cualquier marcador de posición apropiado.
fuente
Si está construyendo para una plataforma como tvOS, asegúrese de tener un simulador de Apple TV (es decir, coincidente) seleccionado.
Construir una aplicación 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.
fuente
En mi caso, la aplicación IPHONEOS_DEPLOYMENT_TARGET se configuró en 9.3, mientras que en mi marco recién creado se configuró en 10.2
El solucionador de dependencias implícitas ignoró mi nuevo marco porque los requisitos de la plataforma de destino son más altos que los requisitos de la aplicación.
Después de ajustar el objetivo de implementación de iOS del marco para que coincida con el objetivo de implementación de mi aplicación, el marco se compiló y se vinculó correctamente.
fuente
Recibía el mismo error cuando agregué un par de marcos usando
Cocoapods
. Si estamos usando Pods en nuestro proyecto, deberíamos usarlo enxcodeworkspace
lugar dexcodeproject
. Para ejecutar el proyecto a través de xcodebuild, agregué el-workspace <workspacename>
parámetro en elxcodebuild
comando y funcionó perfectamente.fuente
He encontrado que la
Import Paths
de laBuild Settings
era equivocada para un módulo personalizado (MySQL). Después de señalar eso en la dirección correcta, el mensaje desapareció.fuente
find
si no lo sabe.Arreglé esto con
Objetivos -> General -> Marcos vinculados y bibliotecas
Agregue el marco que debe estar en la parte superior de la
Workspace
carpeta. Dolor en el culo.fuente
Acabo de eliminar mi cocoapod. Luego, hice una instalación de pod para eliminarlo. Luego, lo agregué nuevamente a mi podfile y lo reinstalé. Eso lo hizo funcionar. No estoy seguro de por qué.
fuente
Ya había instalado pods. Build funcionó sin problemas cuando construí la aplicación en mi dispositivo, pero el archivo no funcionó. Acabo de correr:
no se instalaron nuevos pods, solo el archivo .xcodeproj se regeneró y el archivo comenzó a funcionar
fuente
En Xcode 10.1, la solución para mí fue cambiar el sistema de compilación en la Configuración del espacio de trabajo en el menú Archivo. Está configurado de forma predeterminada en Nuevo sistema de compilación , lo cambió a Sistema de compilación heredado y eso funcionó.
fuente
Hay varias posibles configuraciones erróneas por las que puede surgir el problema,
.xcworkspace
pero no el.xcodeproj
archivo. También asegúrese de tener compilaciónSocial
antes de construirTriviaApp
.TriviaApp
el objetivo de implementación está establecido en9.0
,Social
el objetivo de implementación también debe establecerse en9.0
.TriviaApp
) y su marco utilizado (Social
) tengan el mismo conjunto de configuraciones. es decir, si su proyecto tiene tres configuraciones,Debug
,Release
,ReleasePremium
que su marco social también es necesario tener tres configuracionesDebug
,Release
,ReleasePremium
. También asegúrese de que la configuración de archivo esté establecida para ambosTriviaApp
ySocial
. es decir, si suTriviaApp
esquema de archivo s está configurado enReleasePremium
,Social
también es necesario configurar su esquema de archivo sReleasePremium
.Social
en cada.swift
archivo cuando ya está agregado enBridging-Header.h
.#use_frameworks!
enuse_frameworks!
de ustedPodfile
. En algún momento, la reinstalación de pod funciona siSocial
tiene alguna dependencia de los pods.fuente
Si está utilizando Cartago, los marcos en la configuración del edificio generalmente permanecen en
$(PROJECT_DIR)/Carthage/Build/iOS
Si ejecuta
carthage update --platform ios --no-build
(para ahorrar tiempo) los archivos dentro de la carpeta Build no se volverán a crear, entonces los módulos no estarán disponibles para XCode.En mi caso, he corrido
carthage update --platform ios
, entonces mi problema fue resuelto.fuente
En General => Marcos y bibliotecas vinculados, agregué mi
./Pods/Pods.xcodeproj
e hizo el trucofuente
Para mí, Build Active Architecture Only se configuró en Sí para la configuración seleccionada. Esto hizo el truco:
Seleccione "Pods" en el navegador de proyectos izquierdo> Seleccione "Configuración de compilación"> Construir arquitectura activa solo para no
fuente
Si todos los métodos anteriores no funcionaron para usted, como en el caso mío. 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 quitando referencias y nuevamente los agregué. Sé que esto puede sonar tonto, pero listo funcionó.
fuente
Tuve un problema similar al cargar FacebookSDK, agregué ~ / Documents / FacebookSDK (busque dónde están sus marcos) a las rutas de búsqueda de Marco en la configuración de compilación y luego pude importar el módulo FBSDKShareKit
fuente
Por lo que vale (soy nuevo en esto usando Xcode 7.2 / Swift 2), pero noté que solo tener el archivo .swift de la biblioteca en el directorio del proyecto automáticamente te da acceso a él y no necesita la declaración de uso.
Ejemplo: estoy usando SwiftyJSON y solo tener el archivo SwiftyJSON.swift en el proyecto fue todo lo que necesitaba. La
using
declaración en realidad me estaba dando el error 'no hay tal módulo' y al eliminarlo lo resolvió, y funciona bien.fuente