Błąd podczas instalacji poda

95

Mam działający projekt, w którym od kilku tygodni jest używany plik pod. Kiedy dowiedziałem się, że niektóre z moich podów są aktualizowane, próbowałem `` zainstalować pod '', ale dostałem ten dziwny błąd

    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

inny post sugerował użycie wiersza poleceń `` rm -rf ~ / .cocoapods '', ale to spowodowało, że moje cocoapods przestały działać razem dla całego projektu teraz, niezależnie od projektu, który próbuję zainstalować `` pod install '', otrzymuję komunikat `` Nie można znaleźć specyfikacji dla .. ”błąd

[!] Nie można znaleźć specyfikacji dla CorePlot (= 1.3).

Matan Poreh
źródło
Miałem ten problem po tym, jak się wygłupiałem i usunąłem katalog frameworka w Pods/katalogu.
eremzeit

Odpowiedzi:

234

Jeśli wylądowałeś tutaj 30 stycznia 2014 r. Lub później, przyczyną tego jest przerwa w CocoaPods. Przeczytaj powiązany post na blogu, który znajdziesz tutaj: http://blog.cocoapods.org/Repairing-Our-Broken-Specs-Repository/

lub zrób:

pod repo remove master
pod setup
Mark Edington
źródło
1
Wow, to niezły błąd. Cieszę się, że znalazłem to przy odrobinie googlowania.
swilliams
1
To rozwiązuje problem z uszkodzoną specyfikacją poda, ale pamiętaj, że może być konieczne ponowne zainstalowanie repozytorium: pod repo dodaj yourrepo.git
rmooney
2
@AriBraginsky Kyle Fuller odpowiada na takie pytania na Twitterze, być może to ci pomoże: twitter.com/kylefuller/status/429204211478564865
Mark Edington
1
@AriBraginsky, miałem ten sam błąd podczas używania wersji 0.2.5. Aktualizacja do wersji 0.2.9 powinna to naprawić.
dloomb
1
Wymaga to dobrych 700 MB danych na dzień 19 grudnia 2019 r. Rób to tylko wtedy, gdy masz czas i dobrą prędkość Internetu.
iphondroid
104

rozwiązałem to samodzielnie, sztuczka polegała na $sudo rm -rf ~/.cocoapodswyczyszczeniu głównego repozytorium cocoapods, a następnie działałem pod installbez żadnych problemów.

mam nadzieję, że pomoże to innym osobom, które napotkały ten problem

Matan Poreh
źródło
Dziekuję Dziekuję Dziękuję! Miałem ból głowy z błędami podobnymi do twoich. Teraz wszystko działa dobrze!
Neru
5
Nie ma sudotakiej potrzeby .
Pieter Jongsma
Uratowałeś mój dzień !! Próbowałem wszystkiego. To się udało. Dziękuję Ci. @matan poreh
user1899840
18

Jednowierszowe polecenie 100% martwej pracy to:

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

Utworzyłem numer na GitHub traker: # 2185

A oficjalna odpowiedź brzmi:

Jest to problem, który został już rozwiązany przez @irrationalfab z zatwierdzeniem CocoaPods / CLAide @ 5e023ab. Zatem poprawka powinna być dostępna w następnej wersji CocoaPods. Tylko bądź cierpliwy

skywinder
źródło
16

Jeśli potrzebujesz czystego repozytorium specyfikacji głównej, możesz spróbować

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

lub jeśli korzystasz z CocoaPods 0.23+, użyj ~/.cocoapods/repos/master.

Adam Sharp
źródło
To mi się nie udało. Nie jestem pewien, jak subrepozyty dla każdego projektu są konfigurowane przez cocoapody, ale samo wywołanie git reset --hardrepozytorium głównego nie zresetowało zmian, które zostały wprowadzone w jednym z repozytoriów podrzędnych. Skończyło się na tym, że usunąłem .cocoapodskatalog i zacząłem od nowa, chociaż nie każdy byłby w stanie to zrobić.
eremzeit
@eremzeit co masz na myśli przez repozytorium dzieci?
Adam Sharp
Może to również zadziałać dla Ciebie: (1) git fetch origin(2) git clean -f(3)git reset --hard origin/master
Shiki,
8

Będziesz musiał ręcznie usunąć wszelkie lokalne kopie repozytorium specyfikacji i ponownie sklonować nową wersję repozytorium specyfikacji. Możesz to zrobić za pomocą następujących poleceń: $ sudo rm -fr ~/.cocoapods/repos/master $ pod setup

joserock85
źródło
6

kiedy moje projekty stają się duże i mam duży plik pod, często napotykam ten problem.

Moje rozwiązanie jest następujące:

pod repo remove master
pod setup
pod install
Benzoes
źródło
2
Głos w dół przypuszczalnie wynika z tego, że jest to kopia odpowiedzi Marka Edingtona.
par
2

Musisz naprawić uprawnienia i właściciela plików

$ 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
źródło
1
Tak! To jest to, czego potrzebuję! Wszelkie inne metody pomagają tylko w przypadku jednorazowej instalacji: operacji. Teraz wszystko działa świetnie, dzięki!
skywinder
2

Wow, ten był prawdziwy ból i wydaje się, że każdy ma inne rozwiązanie. U mnie to rozwiązanie działało na wielu komputerach / środowiskach w kilku przypadkach:

Najwyraźniej jest błąd, psychktóry powoduje problem.

sudo gem uninstall psych
sudo gem install psych -v 2.0.0

Trwa długa rozmowa w repozytorium CococaPods na temat problemu i tej poprawki.

LunaCodeGirl
źródło
0

Chcę tylko udostępnić własną poprawkę dotyczącą tego problemu:

Ponieważ jest to problem z git, możesz użyć prostych poleceń git, aby go rozwiązać (patrz post @ AdamSharp). U mnie działało bieganie

git clean -d -f

w ~/.cocoapods/repos/master. Powoduje to rekurencyjne usunięcie z repozytorium wszelkich nieśledzonych plików i katalogów. Zachęcam do biegania:

git clean -d -f --dry-run

Zanim faktycznie cokolwiek wykonasz, aby zobaczyć, co by to zrobiło. Jeśli złamie twoje główne repozytorium CocoaPods, po prostu usuń ~/.cocoapods/repos/masteri uruchom pod repo update.

Sean Michael Dorian
źródło