cocoapods - „instalacja pod” trwa wiecznie

276

Próbowałem zaktualizować istniejące kapsuły za pomocą pod installpolecenia, ale uruchomienie trwa wieczność.

Tryb gadatliwy pokazuje, że utknął w następującej linii (na zawsze)

Aktualizowanie specyfikacji rep master

$ / usr / bin / git pull --no-rebase --no-commit

Brak aktywności sieci po jej zablokowaniu.

Hai Feng Kao
źródło
14
po zablokowaniu przez 90 minut pod installprzechodzi do następnego etapu. Chyba nie jestem zbyt cierpliwa.
Hai Feng Kao
10
uruchom pod install --verbose, aby zobaczyć więcej informacji o debugowaniu. Ogólna sytuacja polega na tym, że aktualizacja git zajmuje zbyt dużo czasu. Jeśli nie potrzebujesz aktualizacji, uruchom pod install
brak
2
Mówi coś o jakości kapsuły. Ci faceci muszą to naprawić wkrótce. Utknąłem na tym za każdym razem, gdy mam do czynienia z kapsułą.
Jonny,
1
@HaiFengKao, martwiłem się, ponieważ mój internet nie jest dobry. Śledziłem go, pobierałem około 350 MB. Dzięki za łącze, myślę, że cocoapods potrzebują własnego serwera.
GeneCode
2
Wciąż równie powolne 5 lat później. 20k na sekundę dla dużego pliku. Śmieszny.
Hasen

Odpowiedzi:

552

Natknąłem się na ten sam problem i rozwiązałem go, uruchamiając następujące polecenia podane tutaj

pod repo remove master
pod setup
pod install
lmnbeyond
źródło
64
cocoapods - „pod repo remove master” trwa wiecznie. Chcesz utworzyć nowy wątek? :)
dmitrynikolaev,
6
Dzięki, to działa dla mnie. A także możesz dodać - verbose, aby wyświetlić szczegółowe informacje debugowania
sygnał
2
@dmitrynikolaev na początku myślałem, że master pod repo remove także trwa wiecznie. Ale okazuje się, że potrzebuję tylko kilku minut, by poczekać. Twój potrzebny czas może się różnić, ponieważ nie znam konfiguracji strąków, ale daj mu więcej czasu.
Chen Li Yong,
22
Dobrze byłoby dodać wyjaśnienie do danego rozwiązania, aby było jasne.
DevGansta
4
Nawet konfiguracja kapsuły utknęła w następujących, $ / usr / bin / git clone github.com/CocoaPods/Specs.git master Klonowanie do 'master' ... Zamiast tego możesz pominąć konfigurację kapsuły „Idź do ~ / .cocoapods / repos i uruchom „git clone github.com/CocoaPods/Specs.git master”
Ammar Mujeeb,
158

możesz biegać

pod install --verbose 

aby zobaczyć, co dzieje się za kulisami. Przynajmniej będziesz wiedział, gdzie się utknął (może to być operacja klonowania git, która trwa zbyt długo z powodu wolnej sieci itp.)

mieć jeszcze lepszy pomysł, dlaczego wydaje się, że utknął (bieganie w trybie pełnym może dać ci coś takiego

-> Installing Typhoon (2.2.1)
 > GitHub download
 > Creating cache git repo (~/Library/Caches/CocoaPods/GitHub/0363445acc1ed036ea1f162b4d8d143134f53b92)
 > Cloning to Pods folder
       $ /usr/bin/git clone https://github.com/typhoon-framework/Typhoon.git ~/Library/Caches/CocoaPods/GitHub/0363445acc1ed036ea1f162b4d8d143134f53b92 --mirror
       Cloning into bare repository '~/Library/Caches/CocoaPods/GitHub/0363445acc1ed036ea1f162b4d8d143134f53b92'...

jest sprawdzenie rozmiaru repozytorium git, które klonujesz .. jeśli klonujesz z github .. możesz użyć tego formatu :

/repos/:user/:repo

na przykład, aby dowiedzieć się o powyższym typie repo

https://api.github.com/repos/typhoon-framework/Typhoon

a zwrócony JSON będzie miał klucz rozmiaru, wartość. więc powyższe powróciło

"size": 94014,

co wynosi około 90 MB. nic dziwnego, że trwa to wiecznie! (btw .. do czasu, kiedy to napisałem .. właśnie skończyło .. ha!)


aktualizacja: jedną powszechną rzeczą, którą robią strąki kakaowe, zanim jeszcze zacznie pobierać zależności wymienione w pliku podfile, jest pobranie / aktualizacja własnego repozytorium (nazywają to Konfigurowanie repozytorium Cocoapods Master .. spójrz na to:

pod install --verbose

Analyzing dependencies

Updating spec repositories
  $ /usr/bin/git rev-parse  >/dev/null 2>&1
  $ /usr/bin/git ls-remote
  From https://github.com/CocoaPods/Specs.git
  09b0e7431ab82063d467296904a85d72ed40cd73  HEAD
  ..

Złą wiadomością jest to, że jeśli się powyższą procedurę, aby dowiedzieć się, jak duży jest strąk kakao repo .. dostaniesz to : „wielkość”: 614373, .. która jest dużo .

aby uzyskać dokładniejszy sposób na sprawdzenie, ile czasu zajmuje samo zainstalowanie własnego repozytorium .. możesz osobno skonfigurować repozytorium główne kakao za pomocą pod setup:

$ pod help setup
Usage:

$ pod setup

  Creates a directory at `~/.cocoapods/repos` which will hold your spec-repos.
  This is where it will create a clone of the public `master` spec-repo from:

      https://github.com/CocoaPods/Specs

  If the clone already exists, it will ensure that it is up-to-date.

następnie biegnie pod install

abbood
źródło
15
To jedyny spójny opis cocoapodów „ WTF ” jest „do”… jaki kiedykolwiek widziałem.
Alex Gray
2
pobranie głównego repozytorium zajęło mi 20 minut wpatrywanie się w migający kursor (a mam tylko połączenie internetowe 150 Mb i kiepski MacBook Pro Retina i7)
Woens
W katalogu specs znajduje się ponad 17 000 plików / katalogów. To nie jest najbardziej przyjazne podejście do tego, do cholery, co tam robią.
Erik Reppen
Kiedy uruchomiłem to polecenie, moje cocoapods pokazały mi, że zostało zakończone. z jego instalacją. Dziękuję Ci!
Jameela Huq
W większości przypadków chodzi o dużą zależność, której pobranie zajmuje dużo czasu
OhadM
29

Możliwe rozwiązania:

  1. Aktualizacja strąków kakaowych może rozwiązać ten problem
  2. Ponownie wyczyść i odśwież strąki

Aktualizacja CocoaPods

Otwórz terminal i wpisz:

$ sudo gem update cocoapods

Ponownie zainstaluj Pods

Krok 1

Usuń wszystkie strąki ze swojego projektu ( podstępna część ):

Ręcznie

  1. Usuń wszystkie rekordy kapsuły z faz budowy twojego projektu (oznaczone na czerwono)

wprowadź opis zdjęcia tutaj

  1. Usuń libPods.a z folderu Frameworks

wprowadź opis zdjęcia tutaj

  1. Teraz przejdź do katalogu projektu i usuń Podfile.lock *, ** folder Pods i obszar roboczy (również Usuń z Kosza ).

Automatycznie używa CocoaPods De-Integrate

zainstalować

$ [sudo] gem install cocoapods-deintegrate

Biegać

$ pod deintegrate

Krok 2

Tutaj przechodzimy do ponownej instalacji kapsuł

Zmień swoją lokalizację na swój katalog

$ cd yourprojectdirectory

Edytuj podfile, dodając do niego potrzebne linie

$ open -a Xcode podfile 

lub

$ nano podfile

WRESZCIE zainstaluj pod ponownie

$ pod install

Mam nadzieję że to pomoże

E-Riddie
źródło
bezużyteczny. Właśnie zrobiłem nową instalację cocoapods, pod init i pod instalacji po prostu zawiesza się na zawsze
woens
@woens Cóż, zależy to od bibliotek, które pobierasz. Możesz także wypróbować to narzędzie, które
dezintegruje
Żaden! o to chodzi. dzieje się tak, gdy zaczynasz od init, a następnie instalujesz na pustym projekcie.
woens,
@woens Co masz na myśli przez żaden? Gdzie warto zainstalować strąki, gdy nie ma w ogóle strąków (jeśli dobrze cię zrozumiałem)?
E-Riddie
po prostu zaczynam pusty projekt i przygotowuję go do dodania rzeczy później. więc: utwórz projekt xcode, uruchom pod init, uruchom instalację pod. W tym momencie instalacja pod zawiesza się.
woens,
19

Znalazłem inny sposób rozwiązania problemu

pod install --verbose --no-repo-update

mi to pasuje.

wossoneri
źródło
Nadal muszę sklonować za pierwszym razem.
Erik Reppen
14

Według stanu na 15 sierpnia 2016 r. Repo jest ogromnym plikiem o wielkości 2,39 GB. Otworzyłem Monitor aktywności, aby zobaczyć, co robi terminal. Pobrał ten ogromny plik.

209135
źródło
13

Jak wskazano tutaj proces git-remote-http działający w tle . Mam ten proces z Monitora aktywności i wychodząc z tego procesu wznowiłem proces pod, który utknął w „ Aktualizowaniu lokalnych repozytoriów specyfikacji ” po POD INSTALACJI

Ammar Mujeeb
źródło
13

Zaktualizowana odpowiedź na rok 2019 - zespół strąków kakaowych przeniósł się do korzystania z własnego CDN, który rozwiązuje ten problem, który był spowodowany ograniczeniem szybkości GitHub, jak opisano tutaj: https://blog.cocoapods.org/CocoaPods-1.7.2/

TL; DR Musisz zmienić linię źródłową Podfilena:

source 'https://cdn.cocoapods.org/'
syonip
źródło
To jest poprawna odpowiedź anno 2019. Gdyby tylko zaakceptowane odpowiedzi mogły zostać zmienione ...
Ian Kemp
9

Oto, co zadziałało dla mnie:

  1. Usuń całą zawartość w obszarze ~/.CocoaPods
  2. Usuń istniejący Podfile.locki Podsfolder.
  3. Pozostaw swój PodFile nienaruszony.
  4. Biegać sudo gem install cocoapods --verbose
  5. Biegać pod install --verbose

Zalecam użycie flagi --verbose, ponieważ Terminal nie jest świetny, gdy daje postęp w akcji polecenia. Opcja verbose bardzo pomaga!

ArdenDev
źródło
5
Uważaj, że repozytorium główne w ~ / .cocoapods jest ogromne (~ 1 GB), więc usunięcie i ponowne zainstalowanie zajmuje dużo czasu. Gdybym to zrozumiał, próbowałbym pod install --verboseprzed usunięciem głównego repozytorium.
BinaryNate
7

Wystarczy przejść przez poniższy krok po kroku:

Pobierz https://github.com/CocoaPods/Specs/archive/master.zip

URUCHOM poniższe polecenia w terminalu:

pod setup --verbose

Otwórz nową kartę w terminalu i uruchom

mv ~/.cocoapods/repos/master/.git ~/tempSpecsGitFolder

otwórz master.zip (rozpakowanie)

mv Specs-master ~/.cocoapods/repos/master

mv ~/tempSpecsGitFolder ~/.cocoapods/repos/master/.git

cd [folder projektu]

instalacja pod - brak aktualizacji repo

Harshal Wani
źródło
6

Spróbuj wyczyścić pamięć podręczną CocoaPods, ponownie pobierz i ponownie zainstaluj wszystkie zasobniki, jak opisano tutaj

rm -rf "${HOME}/Library/Caches/CocoaPods"

rm -rf "\`pwd\`/Pods/"

pod update
Arun Prasad
źródło
4

Jak wspomniano w innych odpowiedziach, trwa to wiecznie, ponieważ rozmiar repozytorium cocoapods jest ogromny. Czas ten można skrócić, wykonując następujące czynności.

1) Utwórz prywatną ścieżkę pliku specyfikacji w swoim repozytorium github. Podaj tę ścieżkę https://github.com/yourpathForspecs.git 'jako źródło w podfile.

2) zidentyfikuj WSZYSTKIE potrzebne repozytoria i ich zależności (wymienione w pliku podspec.json na cocoapod dla tych repozytoriów) i uzyskaj ich pliki podspec.json z cocoapods. dodaj te pliki podspec.json ze swoim folderem (powiedz folder najnowszej wersji dla śrub) w tym repozytorium specyfikacji.

3) usuń źródło „ https://github.com/CocoaPods/Specs.git ” w pliku podfile

4) aktualizacja zasobnika

Zajmie to znacznie mniej czasu, ponieważ wymaga pobrania i pobrania tylko potrzebnych kapsułek zamiast całego repozytorium cocoapods. W moim przypadku skróciło to czas aktualizacji kapsuły średnio z 15-20 minut do maksymalnie 3-4 minut.

shashank
źródło
1

Kroki instalacji pod

Pierwszy otwarty terminal:

chmod o-w /usr/local

sudo chmod o-w /usr/local

sudo gem install cocoapods

jeśli jest już zainstalowany moduł w systemie, wykonaj następujące czynności

sudo gem install cocoapods -V

sudo gem update --system

pod setup

cd /Users/apple/Desktop/Black\&WhiteImageDemo

pod init

open -a Xcode Podfile

pod install
Bhavin Chauhan
źródło
1

Miałem ten sam problem, a potem zdałem sobie sprawę, że nadal korzystam z Network Conditioner w „Very Bad Network”. Wyłączenie to rozwiązało problem.

Mam nadzieję, że komuś pomoże.

Eljoe
źródło
1

Naprawiłem ten problem w ten sposób:

rm -fr ~/Library/Caches/CocoaPods && \
gem update --system && \
gem update && \
gem cleanup && \
pod setup

Odniesienie: http://blog.cocoapods.org/Repairing-Our-Broken-Specs-Repository/

selahattinunlu
źródło
1
Moja pod setuptrwała wiecznie i po 30 minutach przerwałam. Właśnie wykonałem tę procedurę i git cloneteraz skończyłem po około 5 minutach.
neoneye
1

Miałem ten sam problem. Po bieganiu

pod install
Setting up CocoaPods master repo

Iterm2 utknął podczas konfigurowania CocoaPods.

Rozwiązałem problem, uruchamiając

sudo gem install CocoaPods

Zostało to wspomniane na stronie CocoaPods

Akarsh SEGGEMU
źródło
0

Czasami mi się też zdarza i po prostu:

pod clean
pod update --verbose
Luca Davanzo
źródło
0

Rozwiązanie dla mnie w 11.2019

Cześć, próbowałem wielu rzeczy, ale nic nie działało. Spróbuj połączyć się z tą witryną https://cdn.cocoapods.org/, jeśli nie możesz tak po prostu korzystać z VPN i robić pod installitp. I nie zapomnij użyć --verbosedo zrozumienia, co się dzieje.

Viktor
źródło