iphone - mac - xcode for windows
biblioteca no encontrada para-lPods (30)
¿Creó ''Distribución'' o una configuración similar para crear archivos Ad-Hoc y App Store? Como muchos otros, seguí las recomendaciones de Apple y apodé la configuración de ''Lanzamiento'', la llamé ''Distribución'' y le puse diferentes reglas de firma. Bueno, tal vez esa fue una recomendación antes de que introdujeran esquemas y la opción "Distribuir" en el Organizador, de todos modos, ya lo tenía de antes.
Entonces tuve el mismo problema con las vainas. Todo funcionó bien al depurar, pero el archivo falló con un error de enlace. Después de probar esto y de que cambié la configuración del Archivo de mi proyecto original de ''Distribución'' a ''Liberar'' y el error de enlace desapareció.
Sin embargo, el archivo no se mostró en el Organizador, aunque pude ubicarlo en el sistema de archivos, pero tenía un tamaño de 0.
El paso final para arreglar todo esto fue cambiar la configuración de "Omitir instalación" para la configuración ''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 tal como está, ya que se genera cada vez que ejecuta ''pod install''.
Actualización Acabo de recibir una respuesta de los desarrolladores de CocoaPods. Parece que no me funciona, ya que tengo la configuración de Pods correctamente configurada. Pero podría ayudar a alguien más.
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 usé 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?
¿Está abriendo el espacio de trabajo (que fue generado por CocoaPods) en lugar de xcodeproj?
Asegúrese de abrir .xcworkspace
, no .xcodeproj
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.
En este problema, si ya instaló y actualizó el pod en su sistema, su Xcode no podrá encontrar la biblioteca de Pods. Para resolver este problema, verifique las siguientes causas:
- Estás utilizando el espacio de trabajo.
- La biblioteca Pods construye.
- La biblioteca de Pods está referenciada en el grupo de productos de su proyecto.
- Su objetivo incluye la biblioteca Pods en el enlace con la fase de creación de marcos.
En mi caso, el problema fue que la ubicación de Datos Derivados de Xcode se configuró en la opción "Legacy". El objetivo de CocoaPods (libPods.a) se estaba construyendo correctamente, pero Xcode estaba buscando en el lugar equivocado.
Cambiarlo a "Único" (el valor predeterminado) solucionó el problema. Para hacerlo, vaya a Preferencias> Ubicaciones y haga clic en el botón Avanzado ...
En mi caso, la pod install
solucionó el problema, después de crear esquemas de distribución y lanzamiento.
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 intentaba enlazar con el antiguo archivo Partners.a. Simplemente elimínelo si tiene el PodInstalado después de cambiar el nombre.
Había dividido mis listas de pod en el Podfile
para diferentes objetivos como:
target :ABC do
pod ''KissXML'', ''~> 5.0''
pod ''libPhoneNumber-iOS'', ''~> 0.7.2''
end
target :ABCTests do
pod ''OCMock'', ''~> 2.2.1'', :inhibit_warnings => true
end
Y corrió una pod install
Esto creó una nueva biblioteca libPods-ABC.a
a la que tenía que enlazar mi binario. Pero el error fue que no libPods.a
biblioteca anterior, es decir, libPods.a
.
Solución: quite la biblioteca libPods.a
de las Build Phases
de Build Phases
de Link Binary With Libraries
.
Intenté CADA respuesta en este hilo sin éxito. Finalmente resolví mi problema al hacer coincidir la "Ruta de los productos de compilación pre-configuración" en mi proyecto objetivo 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 fue relevante para mí. Sería genial si XCode proporcionara una descripción de error útil (como POR QUÉ no puede usar la lib - Archivo no encontrado, No se encontró una arquitectura coincidente, etc.).
La wiki de CocoaPods en GitHub tiene la respuesta correcta en sus preguntas frecuentes :
- Ir a
Product > Edit Scheme
- Haga clic en
Build
- Agregue la biblioteca estática Pods y asegúrese de que esté en la parte superior de la lista
- Limpiar y construir de nuevo
- Si eso no funciona, verifique que la fuente de la especificación que está tratando de incluir se haya extraído de github. Haga esto mirando en
<Project Dir>/Pods/<Name of spec you are trying to include>
. Si está vacío (no debería estar), verifique que~/.cocoapods/master/<spec>/<spec>.podspec
tenga la url de github correcta. - Si aún así no funciona, verifique la configuración de las ubicaciones de compilación de XCode. Vaya a
Preferences -> Locations -> Derived Data -> Advanced
y establezca la ubicación de compilación en "Relativo al área de trabajo".
Me encontré con un problema similar hoy.
- Configuro un nuevo proyecto
- Instalé vainas de cacao
- Creé una nueva
Preview
configuración junto con laDebug
y laRelease
existentes Ahora, al compilar en esta nueva configuración de
Preview
, el compilador no podría vincularse con Pods y me da este mensaje:ld: library not found for -lPods
La solución:
Lo que tenía que hacer era correr.
pod install
de nuevo y configurando así cocoapods para la nueva configuración de Preview
. Actualizó mi proyecto, el espacio de trabajo y el archivo de proyecto del Pod y el problema desapareció
No me funcionó una solución, esto es realmente insoportable, hay un archivo libpods.a
(que fue de color rojo) ¡Lo libpods.a
y todo libpods.a
bien! Saludos a mi;)
Repasé todas las respuestas aquí, pero para mí fue increíblemente simple ... Vaya a Objetivo -> Crear fases, luego elimine libPods-YourProject.a, luego agréguelo nuevamente usando el "+". No te preocupes si la biblioteca es roja, está bien.
Resuelto siguiendo los pasos a continuación:
- Actualiza tu instalación de cocoapods. ($ [sudo] gema instalar cocoapods)
- Reinstale sus dependencias bajo su proyecto. (pod instalación)
- Limpiar y reconstruir / archivar.
Separé la aplicación y los objetivos de prueba en el Podfile usando
target :App do
…
end
target :AppTests do
…
end
Esto dio lugar a 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 Vincular binario con bibliotecas de la configuración de fases de compilación de ambos destinos.
Si Xcode se queja al vincular, por ejemplo, la biblioteca no se encuentra 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 ha sido sacado de github. Haga esto mirando en / Pods /. Si está vacío (no debería estar), verifique que ~ / .cocoapods / master //. Podspec tenga la url de git hub correcta. Si aún así no funciona, verifique la configuración de las ubicaciones de compilación de XCode. Vaya a Preferencias -> Ubicaciones -> Datos derivados -> Avanzado y configure la ubicación de compilación en "Relativo al área de trabajo".
Si está archivando para iOS7 y Xcode5 y recibió estos errores, consulte este enlace. Parece que Apple está eliminando una arquitectura que las cápsulas de cacao necesitaban https://github.com/CocoaPods/CocoaPods/pull/1352
Si estás usando iOS7 y Xcode 5, haz:
- Seleccione su proyecto Pods.
- Vaya a Target Pods y en Build Settings, seleccione Arquitecturas-> Arquitecturas estándar (armv7, armv7s).
- Haga lo mismo para cada objetivo de su proyecto Pods.
Si tiene problemas con esto en cocoapods v25 / Xcode 5
El proyecto Podcode 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á.
ACTUALIZACIÓN Asegúrate de tener las últimas gemas / cocoápodos
- sistema de actualización de gemas
- actualización de gemas cocoápodos
Usted querrá reconstruir el proyecto usando Pod Install para reconstruir el proyecto.
Si todavía tienes este problema, prueba:
pod update
Hizo el trabajo por mi, espero que esto te ayude.
Solo agregé las "Rutas de búsqueda de la biblioteca" (en Configuración de compilación de ''MyProject'') a "Pods / build / Debug-iphonesimulator" (cuando uso el simulador).
Lo tengo desde aquí: https://github.com/CocoaPods/CocoaPods/issues/121#issuecomment-5452473
Tenía un archivo libPod.a antiguo especificado (probablemente causado por mi cambio de objetivos).
Configuración del proyecto -> Crear fases -> Vincular binarios con bibliotecas
Por lo general, los cocoápodos solo incluirían una biblioteca, como libPods-target.a
o libPods.a
. Lo resolví eliminando el duplicado.
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í:
- Configurando "Preferencias -> Ubicaciones -> Avanzadas" a "Personalizado (relativo al área de trabajo)" O
- Establezca Podfile en
- platform :ios, :deployment_target => "5.0"
,: deploy_target- platform :ios, :deployment_target => "5.0"
Tuve el mismo problema cuando edité el Podfile agregando el objetivo que estaba usando sin un objetivo anteriormente.
Podfile
target ''xxxx'' do
pod ''xyz''
pod ''abc''
end
Después de preguntarme, encontré que en las propiedades de destino >> pestaña General >> sección Marcos vinculados y bibliotecas, estaban los nuevos libPods-xxxx.a y el anterior libPods.a
Acabo de eliminar libPods.a y todo funcionó bien.
Usando Xcode 5 con iOS 7
Esto es lo que hice después de estar atrapado por una hora. Elimine ARM64 de la Configuración de compilación> Arquitectura válida.
AÑADIDO: Además, en mi caso, no se derivó la ubicación de los datos. Elegí único para la ubicación de construcción.
Usar ONLY_ACTIVE_ARCH = NO en todos los pods solucionó el problema por mí. Para hacer esto persistente, agregué un enlace post_install a mi Podfile:
post_install do |installer_representation|
installer_representation.project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings[''ONLY_ACTIVE_ARCH''] = ''NO''
end
end
end
pod install
y ya está.
Utilicé una versión anterior de Cocapé después de actualizar los Cocoapodos que me sugieren que actualice mi pod instalado debido a una actualización importante ya que actualizo después de mucho tiempo. Lo actualizo y la nueva versión de pods fue actualizada 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 episodio, ninguna de ellas funcionó para mí. Luego fui a la configuración de mi proyecto y encontré que la ruta de los pods era un cambio que estaba en la Other Linker Flag
Verifique el nombre correcto de su pod en el Manage Schemes
y compárelo en la Other Linker Flag
, cámbielo si no es similar
La ruta antigua del pod era -l"lPods-xxxprojectName-xxxxxpodName"
Pero los nuevos pods eran solo xxxxxpodName
así que reemplacé el Other Linker Flag
por uno nuevo como el de abajo
Se cambió a la ruta de la vaina -l"xxxxxpodName"
y funcionó.
No sé la razón perfecta detrás de esto, pero podría ser esta ayuda a alguien.
intente abrir el archivo xcworkspace en lugar del archivo xcodeproj
tratar
link_with ''YouTarget1'', ''YouTarget2'' ...
Mi proyecto funcionó, los objetivos de repente dejaron de compilar. Luego agregó "link_with" y volvió a la normalidad.
Aparentemente, ahora solo se conecta al primer objetivo, es lo que dice el enlace: