Estoy teniendo este problema con un nuevo proyecto. Este problema ocurre tanto con RestKit como con Facebook SDK. Extrañamente SwiftyJSON funciona bien. Creé un nuevo proyecto rápido y un Podfile con:
source 'https://github.com/CocoaPods/Specs.git' use_frameworks! target 'test-fb-swift4' do pod "FBSDKCoreKit" pod 'SwiftyJSON', '~> 2.1' pod 'RestKit', :inhibit_warnings => true end target 'test-fb-swift4Tests' do end
Después de crear ese archivo, ejecuto la instalación de pod y vuelvo a abrir xcode con el archivo test-fb-swift4.xcworkspace.
Ahora dentro de mi controlador pongo un RestKit de importación y obtengo el error No such module ‘RestKit’. He intentado muchas formas diferentes de formatear el Podfile incluso en versiones muy simples como:
source 'https://github.com/CocoaPods/Specs.git' pod 'RestKit'
He intentado agregar y eliminar el use_frameworks, con y sin el objective. Con y sin el: inhibit_warnings.
Estoy ejecutando CocoaPods 0.36.4 y probé la última comstackción de rc, el mismo trato. La versión de Objective-C de otro proyecto funciona bien. Este es mi primer proyecto usando Swift y estoy atascado en este tema.
Yo tuve el mismo problema. Mi solución fue abrir el proyecto utilizando .xcworkspace
, no el .xcodeproj
. .xcodeproj
solo contiene el proyecto principal; .xcworkspace
incluye todo, incluido Restkit.
Tuve un problema similar. No con RestKit específicamente, sino inicialmente con HockeySDK. Probé todo, incluso quitando y reinstalando pods, actualizando cocoapods y actualizando pods, eliminando datos derivados, limpiando el proyecto, etc.
Luego noté que cada pod era un problema para mí. Después de continuar buscando en temas relacionados, finalmente descubrí que bajo:
• Target> Build Fases> Link Binary con bibliotecas
Tenía un marco de Pods fuera de lugar (probablemente de una configuración anterior de Pods o bash de instalación).
La segunda opción funcionó para mí. En mi Proyecto> Información> Configuraciones, tengo 2 objectives para mi proyecto: el ordinario (Quizz) y el de prueba (QuizzTests):
Para el habitual, la configuración se estableció con “Pods.debug” o “Pods.release”, pero no había ninguno para QuizzTests. Tan pronto como complete la configuración para QuizzTests, todo funcionó para mí.
Una cosa que podría hacer muy fácilmente para rectificar este problema es asegurarse de que XCode esté completamente apagado al instalar los pods. Cada vez que tengo este problema, vuelvo y descubro que XCode todavía estaba abierto a pesar de que cerré el proyecto. ¡Espero que ayude!
Para mí, la desintegración y la reinstalación de pods arreglaron el problema.
primero
pod deintegrate
y entonces
pod install
Otra posible solución que encontré fue agregar use_frameworks!
a tu Podfile si aún no lo has hecho y luego ejecuta la pod install
nuevamente. Fue un problema con Firebase cuando agregué solo ese pod.
Otra razón de este problema pueden ser los valores incorrectos en la configuración de comstackción del objective: crear solo architecture activa. Los ajustes como en la imagen funcionan para mí.
Para mí, “Buscar dependencias implícitas” no estaba marcado. y fue el problema. Funcionó bien una vez que lo checked
.
La ruta: Edit Scheme > Build > Find implicit Dependencies
En mi caso, solo tenía que marcar la siguiente opción en Xcode Encontrar implícitas Dependencias
No sé exactamente por qué, pero esto fue suficiente para mí, espero que tú también :).
Tuve un problema similar al agregar Fabric a mi proyecto. Tenía objectives múltiples (Release y Dev). Lanzaría No Such Module
para import Fabric
. Lo que funcionó para mí fue ir a Project> Build Phases> Link Binary con Libraries y simplemente marcar el estado de ambos pod framework como Opcional .
Después de horas de probar cosas, descubrí la causa. Mi objective principal de la aplicación tenía 4 configuraciones de comstackción (depuración, versión, interna, externa). Sin embargo, mis frameworks (proyectos secundarios) NO tienen interno, externo, ya que son personalizados añadidos. Una vez que agregué internos / externos a mis proyectos marco, todos archivaron bien.
En mi caso, al principio solo tenía un objective en xcode. pod install
. Unos meses más tarde, tuve que hacer otro objective, así que tenía objectives múltiples.
En esta situación, si pod install
y construyo xcode, aparece el error “no such module”.
Así que pod
archivos de pod
y luego pod init
.
El formato del archivo de Pod se ha cambiado para objectives múltiples
¡¡Funciona!!
¡Mira esto!
Cosas que intenté:
La única solución que tuve para este problema fue exponer el objective Pods- (yourapp) en el selector de esquema (al lado de los botones de ejecutar / detener) y construir manualmente ese objective Pods antes de construir y ejecutar mi objective principal de la aplicación nuevamente. ¡Espero que esto pueda salvar a alguien 10 minutos!
Esto debería funcionar:
Cuando edité y eliminé un directorio que no necesitaba en Proyecto – Configuraciones de comstackción (al lado de Información ), estaba borrando dos de las entradas en las Rutas de búsqueda de marco en el Objetivo de mi aplicación en Configuraciones de comstackción . Asegúrese de que las cuatro filas tengan entradas pobladas automáticamente desde la instalación del Pod como se muestra en la imagen a continuación: Para copiar las entradas de Debug and Release a las siguientes filas, seleccione una fila a la vez y presione eliminar, que debe copiar de la fila anterior. Una vez que hice eso, el espacio de trabajo se construiría muy bien.
Si está utilizando múltiples objectives que acceden a la misma clase (por ejemplo, aplicación de extensión de mensajes), y si esa clase se agrega a ambos objectives, debe agregar el pod para ambos objectives en el PodFile.
¿Tu aplicación se crea utilizando el objective principal?
Si es así, pude hacer que esto funcionara de la siguiente manera:
pod install
Aquí está mi archivo Podfile final.
platform :ios, '11.3' target 'myapp' do use_frameworks! # Pods for myapp pod 'KeychainSwift' pod 'ReachabilitySwift' pod 'Firebase/Core' pod 'Fabric' pod 'Crashlytics' target 'myappTests' do inherit! :search_paths # Pods for testing end target 'myappUITests' do inherit! :search_paths # Pods for testing end target 'myapp-local' do inherit! :search_paths # Pods for testing end target 'myapp-master' do inherit! :search_paths # Pods for testing end end
El problema podría ser que realmente no existe dicho módulo. Especialmente si el nombre del pod contiene guiones y otros personajes controvertidos.
En mi caso, estaba tratando de usar la biblioteca Dip-UI . El proyecto de muestra usaba Carthage que quería reemplazar con CocoaPods. El nombre del módulo con Carthage fue DipUI
, mientras que con CocoaPods fue Dip_UI
, lo que significaba que estaba obteniendo “No such modulo” hasta que cambié el nombre.
Tu xcode no se actualiza a la versión esperada por la biblioteca / framework