Errores de CocoaPods en la compilación del proyecto

178

No puedo construir un proyecto que use CocoaPods. Recibo los siguientes errores:

diff: /../Podfile.lock: No such file or directory
diff: Manifest.lock: No such file or directory error: 
The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.`

$ pod installparece funcionar bien y agrega un Podsproyecto a mi espacio de trabajo. Lo he intentado $ pod updatepero esto no ayuda.

Parece que PODS_ROOTno se está configurando.

Podfile:

platform :ios, '6.0'

workspace 'Example.xcworkspace'
xcodeproj 'example/Example.xcodeproj' 

pod 'TestFlightSDK', '~> 1.3.0-beta.5'
pod 'TestFlightLogger', '~> 0.0.2'
pod 'CocoaLumberjack', '~> 1.6.2'
pod 'Reachability', '~> 3.1.0'
pod 'SBJson', '~> 3.2'
pod 'MKMapViewZoom', '~> 1.0.0'
Distracción
fuente
3
Una simple "instalación de pod" soluciona esto :)
onmyway133
¡Importante! [!] From now on use MyProject.xcworkspace.No te viejo `.xcodeproj'
Dawid Drozd
Sin embargo
desigNerd el

Respuestas:

171

Tuve un problema similar cuando hice cambios importantes en mi Podfile. Mi solución fue eliminar el archivo del espacio de trabajo y pod installvolver a ejecutarlo :

rm -rf MyProject.xcworkspace
pod install
asgoth
fuente
17
Significa que los cocoapods no están instalados correctamente. runsudo gem install cocoapods
asgoth
44
gem install cocoapodses aún mejor La mayoría de las veces sudono debería ser necesario con gemas.
PatrickNLT
55
Tu respuesta me alegró el día. Estuve atrapado por horas. me quito el sombrero
shaikh
Gracias por esto, solucionó el error. FWIW, recibí el error después de hacer ungem update cocoapods
rounak
Problema solucionado Ha obtenido un error al realizar "actualización de la vaina"
swebal
68

TLDR: es muy probable que sea un error con Xcode y cerrar y volver a abrir el proyecto suele ser la solución más simple. Asumiendo que todo lo demás está configurado correctamente .


Ocasionalmente obtengo el mismo error al eliminar el Podsdirectorio y luego ejecutarlo pod install.

Todo parece correcto en la información del proyecto:

ingrese la descripción de la imagen aquí

Sin embargo, cuando voy a la Configuración de compilación definida por el usuario del objetivo, la entrada PODS_ROOT falta por completo o está vacía para una o más configuraciones. Lo que causa el siguiente error en la compilación:

ingrese la descripción de la imagen aquí

La solución más simple es cerrar el proyecto en Xcode y volver a abrirlo .

Si va a la Configuración de compilación del objetivo y filtra en Todo , ahora verá la PODS_ROOTentrada sin errores:

ingrese la descripción de la imagen aquí

Ahora debería compilarse sin errores.


Nota: Incluso el ejemplo oficial de iOS de AFNetworking de Cocoa Pods tiene este problema, lo que me lleva a creer que es un error con Xcode.

Una solución alternativa es cambiar manualmente la configuración a None, luego volver a su valor original:

ingrese la descripción de la imagen aquí

Sensato
fuente
1
¡Esto resultó ser para mí! Mi $ PODS_ROOT se configuró incorrectamente
Alex Ryan
Después de una larga búsqueda de la solución, pude hacerlo funcionar sin errores gracias a su solución. Solo tuve que cambiar Configuraciones a Ninguno y volver a Pods
Glogo
Es bueno poner NINGUNO ayudado.
32

Vaya al objetivo Build Settingsy asegúrese de que el valor de sea PODS_ROOTigual ${SRCROOT}/Podsen la sección "Definido por el usuario".

ingrese la descripción de la imagen aquí

Jagie
fuente
Funciona genial. Esto es lo que se necesitaba.
pr4n
Tuve que agregar PODS_ROOTa mi objetivo con este camino y violá (también lo agregué header search pathscomo "$ (PODS_ROOT)" recursivo
Jacksonkr
No funcionó para mí.
30

actualización: a podfile.lockes necesario y no debe ser ignorado por el control de versiones, realiza un seguimiento de las versiones de bibliotecas instaladas en una instalación de pod determinada. (Es similar a gemfile.lock y composer.lock para rails y gestión de dependencias php, respectivamente). Para obtener más información, lea los documentos . El crédito va a los cbowns .


En mi caso, lo que hice fue hacer un poco de limpieza de la casa para mi proyecto (es decir, ramificar las pruebas de integración como un submódulo git ... eliminar archivos duplicados, etc.) ... y empujar el resultado final a un repositorio remoto git ... Todos los clientes que clonaron mi repositorio sufrieron el error anterior. Inspirado por el comentario anterior de Hlung , me di cuenta de que había algunos scripts de pod colgantes que intentaban ejecutarse contra algunos archivos inexistentes. Así que fui a mi fase de construcción de destino y eliminé todas las fases restantes que tenían algo que ver con las vainas de cacao (y el comentario de Hlung sugiere que elimine Copy Pods Manifest.locky copy pod resources... los míos se llamaron diferentes tal vez porque estoy usando Xcode 5 ... el el punto es eliminar esas fases de construcción colgantes) ...

abbood
fuente
1
Eso no Podfile.lockes para lo que sirve: lea la documentación de Cocoapods sobre "Trabajar con equipos" para obtener más información al respecto.
cbowns
@cbowns tienes toda la razón, gracias por el comentario. Actualicé mi respuesta.
Abbood
12
Eliminé mi archivo xcworkspace e hice la instalación de pod, pero aún recibo el mismo mensaje de error.
jowie
@jowie lo mismo aquí ... ¿puedes guiarme si lo resolviste?
Bandish Dave el
28

Entonces parece que CocoaPods no configuró las configuraciones para mi proyecto. Deben basarse en lo Pods.xcconfigque se encuentra en Pods/Target Support Files/Pods. Para que esto funcione, tuve que hacer lo siguiente:

  1. Arrastre este archivo a mi proyecto Xcode en Xcode, eligiendo no copiar.
  2. Ahora hay una referencia en nuestro proyecto, podemos establecer las configuraciones: ingrese la descripción de la imagen aquí

Luego tuve otro error de compilación que puede o no haber estado relacionado. La ruta al script de shell definida en el Copy Pods Resourcesera incorrecta.

"${SRCROOT}/Pods/Pods-resources.sh"

Resuelto incorrectamente. Parecía que SRCROOT estaba agregando un directorio adicional que no existía en la ruta. Así que codifiqué la ruta a la carpeta Proyecto.

Esto me permitió construir.

¿Por qué tantas cosas que se supone que te ahorran tiempo terminan comiéndolo?

Nota: Consulte la respuesta de @ abood para obtener una explicación.

Distracción
fuente
27
Si ve este error porque eliminó todos los pods de un objetivo, ya no tendrá ningún script de pod pero aún así intentará ejecutarlo. Tendrás que ir a tu fase de construcción de destino, y eliminar Copy Pods Manifest.locky Copy Pods Resourcesfases. Y también eliminar libPods.aen Enlace binario con bibliotecas.
Hlung
@Hlung excelente comentario ... en realidad aborda la causa raíz del problema, probé las soluciones anteriores y todavía terminé con un Podfile.lock (que la mayoría de los .gitignorearchivos están configurados para ignorar ... y con razón) ... ese archivo no debería no te quedes por ahí .. Si lo escribiste como respuesta, ¡te daría un +1!
Abbood
@abbood Escríbelo y te daré la victoria.
Desvío el
Solo quería agregar que este problema en la página Github de CocoaPods menciona verificar las fases de compilación para probablemente este problema exacto (aún más similar ya que tengo múltiples objetivos). El problema me hizo desplazarme aquí abajo ...
DanBlakemore
22

Tengo un problema similar, esto es lo que funcionó:

  1. En Xcode:
    • Limpiar
    • Eliminar datos derivados en Xcode / Window / Organizer / Project / Your Project
    • Directorio de pod (contiene archivos de configuración, elimina archivos, no solo referencias)
    • Se eliminaron todas las referencias a los archivos de configuración de pod para cada objetivo en Proyecto / Configuraciones (depuración / lanzamiento)
    • Se eliminaron los "Recursos de objetivos / fases de creación / pods de copia" de todos los objetivos
    • Se eliminaron "Objetivos / Configuración de compilación / Definido por el usuario / PODS_ROOT" de todos los Objetivos
  2. Salir de Xcode
  3. En su directorio de proyectos:
    • Vainas rm -rf
    • (Opcional) rm -rf YourProject.xcworkspace
    • rm -rf Podfile.lock
  4. instalación de pod
  5. Abra YourProject.xcworkspace en Xcode
Tibidabo
fuente
44
No solo elimine arbitrariamente su espacio de trabajo: incluso si Cocoapods creó su espacio de trabajo, usted lo mantiene.
Joseph DeCarlo
Esto funcionó para mí, eliminé todos los archivos relacionados con pods y reinstalé pods.
Leena
15

Me libré del mismo problema siguiendo estos pasos:

  • Xcode->Product->Clean Build Folder(mantenga presionada la tecla alt en el Producto para verlo)
  • Abrir Xcode->Window->Organizery seleccionar Projectspestaña. Luego encuentre su proyecto y elimínelo derived data .
Timuçin
fuente
1
Trabajó para mi. Estaba molesto Ahora feliz.
Fresidue
En mi caso tuve problemas con un proyecto github. Así que tuve que eliminar por completo el directorio del Proyecto (rm -rf), hice lo anterior, luego descomprimí el proyecto, instalé el pod y abrí el xcworkspace y ¡sin errores!
rharvey
Trabajó para mi. Gracias.
xevser
10

Simplemente resuelto haciendo lo siguiente:

  • (sudo) joya instalar cocoapods

  • instalación de pod

  • limpiar y construir

parece que el problema fue causado por uno de los miembros de nuestro equipo que tuvo una instalación de gemas de cacaopodos más reciente.

Diego
fuente
1
Tuve que reinstalar cocoapods Y reiniciar XCode para resolver este problema.
The Camster
Tuve que correr gem install cocoapodsy luego pod instally casi todo lo demás mencionado en este hilo ...
Echelon
9

  1. Abra el archivo .xcodeproj en texto sublime
  2. elimine estas dos líneas, si tiene carpetas de pods limpias, es decir, si recibió los errores anteriores después de eliminar la carpeta de pods
Ivan Zhang
fuente
me da un ld: biblioteca no encontrada para -lPods - / * My Project Name * / Tests
SleepsOnNewspapers
¿también esto me dará errores en futuras instalaciones de pod?
SleepsOnNewspapers
6

Tuve el mismo problema al decir /Pods/Pods-resources.sh: No existe tal archivo o directorio incluso después de que se eliminaron los archivos, etc., relacionados con los pods.

Deshágase de él yendo a destino-> Fases de compilación y luego eliminando la fase de compilación "Copiar recursos de pod".

roshi
fuente
buena solución, pero me temo que después de limpiar el proyecto y los datos derivados, puede notar por qué necesita esto :)
Julian Król
Luego obtengo el error ".h" del archivo no encontrado de fileName que usa el Pod
coolcool1994
4

Tuve el mismo problema recientemente. He intentado todos los consejos posibles, nada excepto este complemento me ha funcionado:

https://github.com/kylef/cocoapods-deintegrate

Después de la limpieza de la integración actual de cocoapods, lo que queda por eliminar son Podfile, Podfile.lock y .xcworkspace. Luego simplemente instale todo de nuevo.

Espero poder ayudar a alguien con esto.

Chiara
fuente
Esto fue lo único que me arregló.
Charlie
Me alegro de poder ayudar a Charlie
Chiara
4

Este problema lo resolvió.

  1. Seleccione el objetivo de su proyecto
  2. Seleccionar configuración de compilación
  3. Abrir lista desplegable definida por el usuario
  4. Cambiar el valor de la clave PODS_ROOT a $ {SRCROOT} / Pods

Captura de pantalla para los pasos anteriores

Jayprakash Dubey
fuente
1
Me gustó el tuyo. Pero sigo teniendo el mismo error de mierda. ¡¡¡Que es esto!!! nadie tiene una respuesta correcta sobre esto.
@YumYumYum: Luego intenta reinstalar tus pods.
Jayprakash Dubey
Intenté por encima de todas las soluciones, pero esta funcionó. En mi caso, quedaba por establecer el camino en un lanzamiento.
Ankit Kargathra
3

Creo que tiene un error aquí.
Para mí, elimino la Podscarpeta Podfile.locky hago de pod installnuevo para resolver el problema.
Este mensaje está ignorando ... :(

Johnny
fuente
2

No fue muy intuitivo. Fui a la configuración del proyecto base y luego codifiqué las rutas a mi pod.lock y pod.manifest en Check Pods Manifest.lock, porque de hecho se quedaron en diferentes carpetas, por lo que mis rutas se veían así:

diff "/Users/admin/Desktop/Experimental/projectfolder/Podfile.lock" "/Users/admin/Desktop/Experimental/projectfolder/Pods/Manifest.lock" > /dev/null
if [[ $? != 0 ]] ; then
    cat << EOM
error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.
EOM
    exit 1
fi
Vladimir Stazhilov
fuente
El script parece ser generado por CocoaPod. ¿Dónde pusiste este guión?
Nickolas
2

Puedes probar lo siguiente. Se arregló para mí.

  1. instalar gema instalar cocoapods-desintegrar
  2. instalar gema instalar cocoapods-clean
  3. goto pod desintegrate
  4. vaina limpia
  5. instalación de pod

Los complementos se eliminarán de los cocoapods para su proyecto y se instalarán nuevamente.

MD Aslam Ansari
fuente
2

En mi caso, este fue un objetivo de prueba que eliminé todos los pods de dentro de mi podfile (porque agregué pods que luego me di cuenta de que no necesitaba en ese objetivo). Ninguna de las otras soluciones aquí funcionó para mí.

  1. Vaya a la pestaña Fases de compilación en la configuración del proyecto para el objetivo que está causando problemas.

  2. Elimine la sección denominada "Comprobar manifiesto de pods" y "Copiar recursos de pods"

  3. Dentro de "Enlace binario con bibliotecas", elimine libPods-YourTarget.a

  4. En la configuración de su proyecto en la pestaña Información, expanda "Configuraciones" y establezca la configuración para el destino en Ninguno para la depuración y el lanzamiento. (Esto solucionará un par de advertencias de archivos faltantes)

  5. Elimine los datos derivados de su proyecto (Ventana> Proyectos> Eliminar [junto a su proyecto] y reinicie Xcode. Construir / ejecutar objetivo.

calce
fuente
2

¡Esto hizo mi dia!

  1. Eliminar el archivo Podfile.lock en su carpeta de proyecto
  2. Eliminar la carpeta Pods en la carpeta de tu proyecto
  3. Ejecutar pod installen su carpeta de proyecto
  4. Hacer una "limpieza" en Xcode
  5. Reconstruye tu proyecto
alitosuner
fuente
1

En mi caso, el problema estaba en el camino equivocado. solución aquí http://guides.cocoapods.org/using/troubleshooting.html

Si algo no parece funcionar, en primer lugar, asegúrese de no anular completamente las opciones establecidas desde el archivo Pods.xcconfig en la configuración de compilación de su proyecto. Para agregar valores a las opciones de la configuración de compilación de su proyecto, anteponga la lista de valores con $ (heredado) .

R00We
fuente
1

Tuve este problema

La forma en que lo arreglé fue eliminando por completo el Pod que lo implementaba y lo volvía a implementar. Asegúrese de eliminar "Copy Pods Resources" y "Check Pods Manifest.lock" de "Build Phases" en todos los objetivos como se indica aquí: ¿Cómo eliminar CocoaPods de un proyecto?

dloomb
fuente
1

Para poder deshacerme de este error, necesitaba eliminar el Podsdirectorio y eliminar el Podfile.lockarchivo.

BlackHatSamurai
fuente
Estoy de acuerdo con usted, hice todo lo que hizo, incluida la eliminación del archivo del espacio de trabajo y funcionó para mí.
Alix
1

En mi caso, puse Podfile.lock & Manifest.lock en el control de código fuente, pero olvidé agregar archivos Pods-Project.debug (versión) .xcconfig al control de código fuente (al agregar * .xcconfig a .gitignore por error), luego obtuvo los mismos errores de compilación con exactamente la misma razón, PODS_ROOT no se está configurando.

Entonces, si el objetivo es que después de clonar el repositorio, el proyecto puede compilarse y ejecutarse inmediatamente, sin tener CocoaPods instalado en la máquina, puede agregar todo el directorio Pods en el control de origen o agregar Podfile.lock, Manifest.lock, los archivos xcconfig del proyecto y Pods archivos xcconfig al control de origen.

No puse el .xcconfig privado que combina la configuración de compilación con la configuración predeterminada de CocoaPods para controlar la fuente.

Qiulang
fuente
1

Después de pasar horas, encontré la solución, vaya a "Fases de compilación" y luego a "Comprobar Pods Manifest.lock" Marque "Ejecutar script solo al instalar"

Agradéceme después ;)ingrese la descripción de la imagen aquí

Abdul Hadi Siraj
fuente
1

Tuve el mismo problema con mi mi IONIC proyecto , probé por encima de todas las soluciones pero no tuve suerte.

Si todavía tiene el mismo problema, verifique que el clima debajo de la configuración esté presente en Build Settings -> User-Defined settings o no

1. PODS_ROOT 2.PODS_PODFILE_DIR_PATH

Si no está presente, agréguelo.

PODS_ROOT = ${SRCROOT}/Pods

PODS_PODFILE_DIR_PATH = ${SRCROOT}/

Resolverá el problema, enlace de solución

Onkar
fuente
0

He creado múltiples objetivos antes de usar cápsulas. Más tarde, cuando comencé a compilar los otros objetivos, tuve que agregar link_with con la lista de objetivos en mi Podfile.

Vladimír Slavík
fuente
0

Tuve el mismo problema. Después de volver sobre mis pasos recientes, descubrí que la causa del problema era agregar una declaración de objetivo para un nuevo objetivo, seguido de la ejecución pod install,:

ingrese la descripción de la imagen aquí

Restablecer mi rama y limpiar mi proyecto no funcionó, ya que Cocoapods modificó al menos un archivo que no está bajo control de origen. Sé esto porque una vez que restablecí la rama remota a una confirmación antes de agregar el objetivo adicional y volví a clonar el repositorio, el problema ya no existía.

Sheamus
fuente
0

Si tiene un objetivo watchOS: descubrí que de repente, tener pods en la extensión del reloj pero no en el objetivo del reloj en sí rompió las cosas con este mismo error. La solución fue agregar las cápsulas al objetivo del reloj también.

xaphod
fuente
0

si agregó un nuevo objetivo después de crear Podfile, simplemente elimine Podfile, Podfile.lock, la carpeta Pods y el espacio de trabajo, luego inicie pods -> luego coloque su pod pod install

mohammad alabid
fuente
0

Después de probar lo anterior, me di cuenta de que estaba recibiendo un error en pod install

[!] CocoaPods no estableció la configuración base de su proyecto porque su proyecto ya tiene un conjunto de configuración personalizado.

Esto estaba causando el error, porque cocoapods no estaba agregando el archivo .xcconfig a mi proyecto.

Para resolver esto, fui a la Infopestaña de mi proyecto. Establezca mi Basado en el archivo de configuración Nonepara todos los esquemas y objetivos. Luego volvió a correrpod install

Mira este link para más información. Advertencia de Cocoapods: CocoaPods no estableció la configuración básica de su proyecto porque su proyecto ya tiene un conjunto de configuración personalizado

Matt Hudson
fuente
0

En mi caso, accidentalmente escribí un punto innecesario al final del archivo de configuración que causó este extraño problema. ¡Asegúrese de que su archivo de configuración no contenga ningún error!

Jidong Chen
fuente