Error en la instalación del pod

95

Tengo un proyecto de trabajo que usa un archivo de pod desde hace algunas semanas. Cuando me enteré de que algunos de mis pods se habían actualizado, intenté 'instalar pod' y obtuve este extraño error

    Analyzing dependencies
    [!] Pod::Executable pull

    Updating 1337455..e9f6e93
    error: The following untracked working tree files would be overwritten by merge:

AeroGear-Push/0.7.0/AeroGear-Push.podspec

AeroGear/1.2.0/AeroGear.podspec

BrynKit/1.3.0/BrynKit.podspec

BrynKit/1.3.1/BrynKit.podspec

CSURITemplate/0.3/CSURITemplate.podspec

EXiLE/1.0.2/EXiLE.podspec

FlurrySDK/4.2.3/FlurrySDK.podspec

FoundationExtension/0.39.1/FoundationExtension.podspec

FoundationExtension/0.39/FoundationExtension.podspec

GCDObjects/0.0.1/GCDObjects.podspec

HTAutocompleteTextField/1.2.1/HTAutocompleteTextField.podspec

HTAutocompleteTextField/1.2.2/HTAutocompleteTextField.podspec

HTAutocompleteTextField/1.2/HTAutocompleteTextField.podspec

IDMPhotoBrowser/1.1.2/IDMPhotoBrowser.podspec

Igor/0.5.0/Igor.podspec

KFOpenWeatherMapAPI/0.2.0/KFOpenWeatherMapAPI.podspec

NGSegmentedViewController/0.1.1/NGSegmentedViewController.podspec

PPiFlatSegmentedControl/1.3/PPiFlatSegmentedControl.podspec

PiwikTracker/2.0.0/PiwikTracker.podspec

SDWebImage/3.4/SDWebImage.podspec

libwbxml/0.11.2/libwbxml.podspec

wbxml/0.0.1/wbxml.podspec

    Please move or remove them before you can merge.

    Aborting

otra publicación sugirió usar la línea de comando 'rm -rf ~ / .cocoapods', pero esto hizo que mis cocoapods dejaran de funcionar todos juntos para todos los proyectos ahora, cualquier proyecto que intente 'instalar pod', aparece el mensaje 'No se puede encontrar una especificación para .. 'error

[!] No se puede encontrar una especificación para CorePlot (= 1.3).

Matan Poreh
fuente
Tuve este problema después de estar jugando y eliminé un directorio de marco en el Pods/directorio.
eremzeit

Respuestas:

234

Si aterrizó aquí el 30 de enero de 2014 o después, hay una interrupción en CocoaPods que está causando esto. Lea la publicación de blog relacionada que se encuentra aquí: http://blog.cocoapods.org/Repairing-Our-Broken-Specs-Repository/

o hacer:

pod repo remove master
pod setup
Mark Edington
fuente
1
Vaya, eso es un gran error. Me alegro de haber encontrado esto con solo un poco de búsqueda en Google.
swilliams
1
Esto soluciona el problema de la especificación de la cápsula rota, pero tenga en cuenta que es posible que deba reinstalar su repositorio: pod repo add yourrepo.git
rmooney
2
@AriBraginsky Kyle Fuller está respondiendo preguntas como esta en Twitter, tal vez esto te ayude: twitter.com/kylefuller/status/429204211478564865
Mark Edington
1
@AriBraginsky, tuve el mismo error al usar 0.2.5. La actualización a 0.2.9 debería solucionarlo.
dloomb
1
Esto requiere unos buenos 700 MB de datos a partir del 19 de diciembre de 2019. Haga esto solo cuando tenga tiempo y una buena velocidad de Internet.
iphondroid
104

Lo resolví por mi cuenta, el truco consistía en usarlo $sudo rm -rf ~/.cocoapodspara limpiar el repositorio maestro de cocoapods y luego pod installfuncionó sin ningún problema.

Espero que esto ayude a otras personas que encontraron este problema.

Matan Poreh
fuente
¡Gracias, gracias, gracias! Tenía dolor de cabeza con errores similares al tuyo. ¡Ahora todo está funcionando bien!
Neru
5
No hay necesidad de sudoesto.
Pieter Jongsma
¡¡Salvaste mi día!! Probé todo. Esto funcionó. Gracias. @matan poreh
user1899840
18

El comando de una línea de trabajo muerto al 100% es:

sudo rm -rf ~/.cocoapods && pod setup && pod install

Creé el problema en GitHub traker: # 2185

Y la respuesta oficial es:

Este es un problema que ya ha sido solucionado por @irrationalfab con la confirmación CocoaPods / CLAide @ 5e023ab. Entonces, la solución debería estar disponible en la próxima versión de CocoaPods. Sea paciente

skywinder
fuente
16

Si necesita un repositorio de especificaciones maestro limpio, puede probar

cd ~/.cocoapods/master
git reset --hard

o si usa CocoaPods 0.23+, use ~/.cocoapods/repos/master.

Adam Sharp
fuente
Esto no funcionó para mí. No estoy seguro de cómo cocoapods configuran los subrepos para cada proyecto, pero solo llamar git reset --hardal repositorio raíz no restableció los cambios que se habían realizado en uno de los repositorios secundarios. Terminé simplemente eliminando mi .cocoapodsdirectorio y comenzando de nuevo, aunque no todos estarían en condiciones de hacer esto.
eremzeit
@eremzeit ¿a qué te refieres con repositorios secundarios?
Adam Sharp
Hacer esto también podría funcionar para usted: (1) git fetch origin(2) git clean -f(3)git reset --hard origin/master
Shiki
8

Tendrá que eliminar manualmente las copias locales del repositorio de especificaciones y volver a clonar la nueva versión del repositorio de especificaciones. Puedes hacerlo con los siguientes comandos: $ sudo rm -fr ~/.cocoapods/repos/master $ pod setup

joserock85
fuente
6

cuando mis proyectos crecen y tengo un archivo de pod grande, me encuentro con este problema bastante.

Mi solución es la siguiente:

pod repo remove master
pod setup
pod install
Benjamín
fuente
2
El voto negativo presumiblemente se debe a que es una copia de la respuesta de Mark Edington.
par.
2

Necesita arreglar los permisos y el propietario de los archivos

$ sudo chown -R user ~/Library/Caches/CocoaPods
$ sudo chown -R user ./Pods
$ sudo chown -R user ./Podfile.lock
$ sudo chmod -R 777 ./Pods

$ pod update/setup
comonitos
fuente
1
¡Si! ¡Eso es lo que necesito! . Cualquier otro método ayuda sólo para una vez "vaina de instalar: operación de este momento todo funciona bien, gracias!
skywinder
2

Vaya, este ha sido un verdadero dolor y todo el mundo parece tener una solución diferente. Para mí, esta solución funcionó en varias máquinas / entornos en algunas ocasiones:

Aparentemente, hay un error psychque está causando el problema.

sudo gem uninstall psych
sudo gem install psych -v 2.0.0

Hay una larga conversación sobre el repositorio de CococaPods sobre el problema y esta solución.

LunaCodeChica
fuente
0

Solo para compartir mi propia solución para este problema:

Dado que este es un problema de git, puede usar comandos simples de git para resolverlo (consulte la publicación de @ AdamSharp). Lo que funcionó para mí fue correr

git clean -d -f

en ~/.cocoapods/repos/master. Esto elimina de forma recursiva todos los archivos y directorios sin seguimiento del repositorio. Te animo a correr:

git clean -d -f --dry-run

Antes de que realmente ejecutes algo para que puedas ver qué haría. Si rompe su repositorio principal de CocoaPods, simplemente elimínelo ~/.cocoapods/repos/mastery ejecútelo pod repo update.

Sean Michael Dorian
fuente