Erreur lors de l'installation du pod

95

J'ai un projet de travail qui utilise un fichier pod depuis quelques semaines maintenant. Quand j'ai appris que certains de mes pods avaient une mise à jour, j'ai essayé de `` installer un pod '' sur cette erreur étrange

    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

un autre article a suggéré d'utiliser la ligne de commande 'rm -rf ~ / .cocoapods', mais cela a provoqué l'arrêt de mes cocoapods pour tous les projets maintenant, quel que soit le projet que j'essaie de 'pod install', j'obtiens le 'Impossible de trouver une spécification pour ..' Erreur

[!] Impossible de trouver une spécification pour CorePlot (= 1.3).

Matan Poreh
la source
J'ai eu ce problème après avoir déconné et supprimé un répertoire de framework sous le Pods/répertoire.
eremzeit

Réponses:

234

Si vous avez atterri ici le 30 janvier 2014 ou après, il y a une interruption dans les CocoaPods qui en sont la cause. Veuillez lire l'article de blog associé trouvé ici: http://blog.cocoapods.org/Repairing-Our-Broken-Specs-Repository/

ou faire:

pod repo remove master
pod setup
Mark Edington
la source
1
Wow, c'est tout un bug. Heureux d'avoir trouvé cela avec juste un peu de recherche sur Google.
swilliams
1
Cela résout le problème de spécification de pod cassé, mais gardez à l'esprit que vous devrez peut-être réinstaller votre dépôt: pod repo add yourrepo.git
rmooney
2
@AriBraginsky Kyle Fuller répond à des questions comme celle-ci sur Twitter, peut-être que cela vous aidera: twitter.com/kylefuller/status/429204211478564865
Mark Edington
1
@AriBraginsky, j'ai eu la même erreur lors de l'utilisation de 0.2.5. La mise à jour vers 0.2.9 devrait résoudre ce problème.
dloomb
1
Cela nécessite 700 Mo de données au 19 décembre 2019. Ne le faites que lorsque vous avez le temps et une bonne vitesse Internet.
iphondroid
104

résolu par moi-même, l'astuce consistait à utiliser $sudo rm -rf ~/.cocoapodspour nettoyer le repo principal des cocoapodes, puis a pod installfonctionné sans aucun problème.

J'espère que cela aidera d'autres personnes qui ont rencontré ce problème

Matan Poreh
la source
Merci merci merci! J'ai eu mal à la tête avec des erreurs similaires aux vôtres. Maintenant, tout fonctionne bien!
Neru
5
Pas besoin de sudoça.
Pieter Jongsma
Vous avez sauvé ma journée !! J'ai tout essayé. Cela a fonctionné. Je vous remercie. @matan poreh
user1899840
18

La commande en une ligne 100% dead-work est:

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

J'ai créé le problème sur GitHub traker: # 2185

Et la réponse officielle est:

C'est un problème qui a déjà été résolu par @irrationalfab avec commit CocoaPods / CLAide @ 5e023ab. Le correctif devrait donc être disponible dans la prochaine version de CocoaPods. Sois juste patient

Skywinder
la source
16

Si vous avez besoin d'un repo de spécifications principales propre, vous pouvez essayer

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

ou si vous êtes sur CocoaPods 0.23+, utilisez ~/.cocoapods/repos/master.

Adam Sharp
la source
Cela n'a pas vraiment fonctionné pour moi. Je ne sais pas comment les sous-dépôts de chaque projet sont configurés par les cocoapods, mais le simple fait d'appeler git reset --hardle dépôt racine n'a pas réinitialisé les modifications qui avaient été apportées à l'un des dépôts enfants. J'ai fini par supprimer mon .cocoapodsrépertoire et recommencer, même si tout le monde ne serait pas en mesure de le faire.
eremzeit
@eremzeit qu'entendez-vous par pensions d'enfants?
Adam Sharp
Cela pourrait aussi fonctionner pour vous: (1) git fetch origin(2) git clean -f(3)git reset --hard origin/master
Shiki
8

Vous allez devoir supprimer manuellement toutes les copies locales du référentiel Specs et recloner la nouvelle version du référentiel Specs. Vous pouvez le faire avec les commandes suivantes: $ sudo rm -fr ~/.cocoapods/repos/master $ pod setup

joserock85
la source
6

quand mes projets deviennent gros et que j'ai un gros fichier pod, je rencontre un peu ce problème.

Ma solution est la suivante:

pod repo remove master
pod setup
pod install
Benjamin
la source
2
Le vote défavorable est probablement dû au fait que c'est une copie de la réponse de Mark Edington.
par
2

Vous devez corriger les autorisations et le propriétaire des fichiers

$ 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
la source
1
Oui! C'est ce dont j'ai besoin! Toutes les autres méthodes ne sont utiles que pour une seule fois "installation du pod: opération. Pour le moment, tout fonctionne très bien, merci!
skywinder
2

Wow, celui-ci a été une vraie douleur et tout le monde semble avoir une solution différente. Pour moi, cette solution a fonctionné sur plusieurs machines / environnements à quelques reprises:

Apparemment, il y a un bogue psychqui cause le problème.

sudo gem uninstall psych
sudo gem install psych -v 2.0.0

Il y a une longue conversation sur le repo CococaPods sur le problème et ce correctif.

LunaCodeGirl
la source
0

Juste pour partager mon propre correctif pour ce problème:

Puisqu'il s'agit d'un problème git, vous pouvez utiliser des commandes git simples pour le résoudre (voir l'article de @ AdamSharp). Ce qui a fonctionné pour moi était de courir

git clean -d -f

dans ~/.cocoapods/repos/master. Cela supprime de manière récursive tous les fichiers et répertoires non suivis du dépôt. Je vous encourage à courir:

git clean -d -f --dry-run

Avant d'exécuter quoi que ce soit pour voir ce que cela ferait. Si cela casse votre référentiel principal CocoaPods, supprimez ~/.cocoapods/repos/masteret exécutez simplement pod repo update.

Sean Michael Dorian
la source