Recibí un error al archivar un proyecto. Este es mi entorno
- Mac OS Lion
- Xcode 4.3.1
- iOS SDK 5.1
El objetivo de implementación del proyecto es:
IPHONEOS_DEPLOYMENT_TARGET 3.2
El error muestra:
ld: library not found for -lPods
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Supongo que Pods es CocoaPods que utilicé para administrar las dependencias del proyecto XCode. https://github.com/CocoaPods/CocoaPods
Este es mi podfile
platform :ios
dependency 'libPusher', '1.1'
¿No estoy seguro de lo que significa el error?
Respuestas:
¿Estás abriendo el espacio de trabajo (que fue generado por CocoaPods) en lugar del xcodeproj?
fuente
Podfile
, especifique la plataforma, así:platform :ios, :deployment_target => "3.2"
. Eso debería configurarlo correctamente la próxima vez que ejecutepod install
..xcworkspace
archivo, no el.xcodeproj
. De esta manera, además de su proyecto, Xcode conoce el proyecto en elPods/
directorio y cómo construirlolibPods.a
..xcodeproj
apertura, debe cerrarla antes de abrir el.xcworkspace
archivo.Separé la aplicación y los objetivos de prueba en el Podfile usando
Esto dio como resultado dos nuevos productos libPods-App.a y libPods-AppTests.a , respectivamente, y dejaron el producto anterior libPods.a obsoleto. Tuve que eliminar este producto de la sección Enlace binario con bibliotecas de la configuración Fases de compilación de ambos objetivos.
fuente
Me encontré con un problema similar hoy.
Preview
junto con la existenteDebug
yRelease
Ahora, al compilar esta nueva
Preview
configuración, el compilador no podrá vincularse con Pods y me dará este mensaje:La solución:
Lo que tenía que hacer era correr
de nuevo y configurando cocoapods para la nueva
Preview
configuración. Actualizó mi proyecto, el espacio de trabajo y el archivo de proyecto del Pod y el problema desapareciófuente
Asegúrese de abrir
.xcworkspace
, no.xcodeproj
fuente
No fue una solución que funcionó para mí, esto es realmente insoportable, hay un archivo
libpods.a
(que era de color rojo) ¡Lo eliminé y todo funciona bien! Saludos a mí;)fuente
Había dividido mis listas de pod en
Podfile
diferentes objetivos como:Y corrió un
pod install
Esto creó una nueva biblioteca
libPods-ABC.a
a la que mi binario tenía que vincularse. Pero el error fue que no eliminó la biblioteca anterior, es decirlibPods.a
.Solución: Retire la biblioteca
libPods.a
a partirBuild Phases
deLink Binary With Libraries
.fuente
Tenía un viejo archivo libPod.a especificado (probablemente causado por el cambio de objetivos).
Configuración del proyecto -> Fases de construcción -> Enlace binario con bibliotecas
Por lo general, los cocoapodos solo incluirían una biblioteca, como
libPods-target.a
olibPods.a
. Lo resolví eliminando el duplicado.fuente
Pods.debug
aPods-MyApp.debug
, así que ahora solo necesitolibPods-MyApp.a
(había un icono "desvanecido" para el viejolibPods.a
),si tiene problemas con esto en cocoapods v25 / Xcode 5
El proyecto Pods Xcode ahora establece la configuración de compilación ONLY_ACTIVE_ARCH en YES en la configuración de depuración. Tendrá que establecer lo mismo en su proyecto / destino, de lo contrario la compilación fallará.
https://github.com/CocoaPods/CocoaPods/wiki/FAQ#running-into-build-failures-after-migrating-to-xcode-5-and-cocoapods-0250
ACTUALIZACIÓN Asegúrese de tener las últimas gemas / cocoapods
Deberá reconstruir el proyecto utilizando Pod Install para reconstruir el proyecto.
fuente
Si Xcode se queja al vincular, por ejemplo, Biblioteca no encontrada para -lPods, no detecta las dependencias implícitas.
Vaya a Producto> Editar esquema Haga clic en Generar Agregue la biblioteca estática Pods y asegúrese de que esté en la parte superior de la lista Limpiar y compilar nuevamente Si eso no funciona, verifique que la fuente de la especificación que está tratando de incluir haya sido sacado de github. Haga esto buscando en / Pods /. Si está vacío (no debería estarlo), verifique que ~ / .cocoapods / master //. Podspec tenga la URL correcta de git hub. Si todavía no funciona, verifique la configuración de ubicaciones de compilación de XCode. Vaya a Preferencias -> Ubicaciones -> Datos derivados -> Avanzado y establezca la ubicación de compilación en "Relativo al espacio de trabajo".
http://docs.cocoapods.org/guides/getting_started.html
fuente
Tuve el mismo problema cuando edité el Podfile agregando el objetivo que estaba usando sin un objetivo antes.
Podfile
Después de preguntarme, encontré que en las propiedades de destino >> pestaña General >> Sección de Marcos y Bibliotecas Vinculadas, estaban los nuevos libPods-xxxx.a y el antiguo libPods.a
Acabo de eliminar libPods.a y todo funcionó bien.
fuente
El wiki de CocoaPods en GitHub tiene la respuesta correcta en sus preguntas frecuentes :
Product > Edit Scheme
Build
<Project Dir>/Pods/<Name of spec you are trying to include>
. Si está vacío (no debería estarlo), verifique que~/.cocoapods/master/<spec>/<spec>.podspec
tenga la URL de Github correcta.Preferences -> Locations -> Derived Data -> Advanced
y establezca la ubicación de compilación en "Relativo al espacio de trabajo".fuente
Estaba cambiando el nombre del proyecto a "NBSelector" de "Socios".
Tuve el error "Biblioteca no encontrada para libPods-Partners" después de cambiar el nombre del proyecto. Xcode estaba intentando vincular al antiguo archivo Partners.a. Simplemente quítelo si tiene PodInstalled después de cambiar el nombre.
fuente
Usar ONLY_ACTIVE_ARCH = NO en todos los pods resolvió el problema para mí. Para hacer esto persistente, agregué un enlace post_install a mi Podfile:
pod install
y tu estas listo.fuente
¿Creó 'Distribución' o una configuración similar para hacer archivos Ad-Hoc y App Store? Como muchos otros, seguí las recomendaciones de Apple y denominé la configuración 'Release', la llamé 'Distribución' y establecí diferentes reglas de firma. Bueno, tal vez fue una recomendación antes de que introdujeran esquemas y la opción "Distribuir" en el Organizador, de todos modos, lo tenía antes.
Entonces tuve el mismo problema con Pods. Todo funcionó bien al depurar, pero el archivo falló con un error de enlace. Después de intentar esto y que cambié la configuración de archivo de mi proyecto original de 'Distribución' a 'Versión' y el error de enlace desapareció.
Sin embargo, el archivo no apareció en Organizer, aunque pude ubicarlo en el sistema de archivos, pero tenía un tamaño 0.
El último paso para solucionar todo esto fue cambiar la configuración de "Omitir instalación" para la configuración de 'Liberar' a "NO". Tenga en cuenta que debe hacer esto solo para su proyecto principal, pero no para el proyecto Pods. Mejor deje el proyecto Pods como está, ya que se genera cada vez que ejecuta 'pod install'.
Actualización Acabo de recibir una respuesta de los desarrolladores de CocoaPods No parece funcionar para mí, ya que tenía la configuración de Pods configurada correctamente. Pero podría ayudar a alguien más.
fuente
En mi caso, el problema era que la ubicación de datos derivados de Xcode estaba configurada en la opción "Legacy". El objetivo de CocoaPods (libPods.a) se estaba construyendo correctamente, pero Xcode lo estaba buscando en el lugar equivocado.
Cambiarlo a "Único" (el predeterminado) resolvió el problema. Puede hacerlo yendo a Preferencias> Ubicaciones y haciendo clic en el botón Avanzado ...
fuente
Solo para mí fue útil agregar las "Rutas de búsqueda de la biblioteca" (en la Configuración de compilación de 'MyProject') a "Pods / build / Debug-iphonesimulator" (al usar el simulador).
Lo tengo desde aquí: https://github.com/CocoaPods/CocoaPods/issues/121#issuecomment-5452473
fuente
Si está archivando para iOS7 y Xcode5 y recibió estos errores, consulte este enlace. Parece que Apple está dejando caer una arquitectura que las vainas de cacao necesitaban https://github.com/CocoaPods/CocoaPods/pull/1352
fuente
Descubrí que seleccionar "Buscar dependencias implícitas" (bajo el esquema de producto / edición) resolverá este problema en lugar de tener que agregar pods como objetivo.
fuente
Revisé todas las respuestas aquí, pero para mí fue increíblemente simple ... Vaya a Target -> Build Fases, luego elimine libPods-YourProject.a, luego agréguelo nuevamente usando el "+". No te preocupes por que la biblioteca sea roja, está bien.
fuente
Utilicé la versión anterior de cocoapod después de actualizar los cocoapods, me sugiere actualizar mi pod instalado debido a una actualización importante ya que actualizo después de mucho tiempo. Lo actualicé y los pods de la nueva versión se actualizaron bien. Pero después de eso recibí el error como
library not found for -lPods-xxxprojectName-xxxxxpodName
Después de probar tantas soluciones dadas como respuesta en este thred, nada de esto funcionó para mí. Luego fui a la configuración de mi proyecto y descubrí que la ruta de los pods era el cambio que estaba en
Other Linker Flag
Verifique su
Manage Schemes
nombre de pod correcto y compáreloOther Linker Flag
, cámbielo si no es similarEl viejo camino de la vaina era
-l"lPods-xxxprojectName-xxxxxpodName"
Pero las nuevas vainas solo fueron
xxxxxpodName
así que las reemplacéOther Linker Flag
por una nueva como la siguienteCambiado a la ruta del pod
-l"xxxxxpodName"
y funcionó.No sé la razón perfecta detrás de esto, pero podría ser que esto ayude a alguien.
fuente
Abrí el espacio de trabajo, pero obtuve el mismo error.
Construir arquitectura activa solo configurado en SÍ
resuelve mi problema
fuente
Lo resolvió siguiendo los pasos a continuación:
fuente
En mi caso
pod install
solucioné el problema, después de crear esquemas de distribución y lanzamiento.fuente
Tengo el mismo problema al archivar para enviar. La discusión sobre este tema se puede encontrar aquí: https://github.com/CocoaPods/CocoaPods/issues/155
En resumen, dos métodos funcionan para mí:
- platform :ios, :deployment_target => "5.0"
fuente
Usando Xcode 5 con iOS 7
Esto es lo que hice después de estar atrapado durante una hora. Elimine ARM64 de la Configuración de compilación> Arquitectura válida.
AGREGADO: Además, para mi caso, no se derivaba la ubicación de datos. Elegí único para la ubicación de construcción.
fuente
si estás usando iOS7 y Xcode 5, haz lo siguiente:
fuente
Intenté CADA respuesta en este hilo en vano. Finalmente resolvió mi problema haciendo coincidir la "Ruta de productos de compilación previa a la configuración" en mi proyecto de destino con el valor en el proyecto Pods. Resulta que estaban construyendo en dos ubicaciones de salida diferentes. Ninguna de las otras sugerencias en este hilo fueron relevantes para mí. Sería genial si XCode proporcionara una descripción de error útil (como POR QUÉ no puede usar lib - File Not Found, No se encontró arquitectura coincidente, etc.).
fuente
En este problema, si ya instaló y actualizó el pod en su sistema, entonces su Xcode no puede encontrar la biblioteca Pods. Para resolver este problema, verifique las siguientes causas que pueden tener lugar:
fuente
tratar
link_with 'YouTarget1', 'YouTarget2' ...
Mi proyecto funcionó, los objetivos de repente dejaron de compilarse. Luego agregó "link_with" y volvió a la normalidad.
Aparentemente, ahora solo se conecta al primer objetivo, es lo que dice el enlace:
http://guides.cocoapods.org/syntax/podfile.html#link_with
fuente
Si todavía tiene este problema, intente:
Hizo el trabajo por mí, espero que esto te ayude.
fuente