cocoapods - 'pod install' dauert ewig


276

Ich habe versucht, die vorhandenen Pods mit einem pod installBefehl zu aktualisieren , aber die Ausführung dauert ewig.

Der ausführliche Modus zeigt an, dass er in der folgenden Zeile steckt (für immer)

Spezifikations-Repo aktualisieren master

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

Es gibt keine Netzwerkaktivität, nachdem es stecken geblieben ist.


14
Nachdem Sie 90 Minuten festgefahren sind, fahren Sie pod installmit der nächsten Stufe fort. Ich glaube ich bin nicht sehr geduldig.
Hai Feng Kao

10
Führen Sie pod install --verbose aus, um weitere Debugging-Informationen anzuzeigen. Die allgemeine Situation ist, dass die Aktualisierung von Git zu lange dauert. Wenn Sie kein Update benötigen, führen Sie die Pod-Installation --no-repo-update
Wellbin Huang

2
Sagt etwas über die Qualität der Schote. Diese Jungs müssen das bald beheben. Ich stecke jedes Mal fest, wenn ich mich mit Pod beschäftigen muss.
Jonny

1
@HaiFengKao, ich war besorgt, weil mein Internet nicht gut ist. Ich habe es verfolgt, es wurden ungefähr 350 MB heruntergeladen. Danke für den Link, ich denke Cocoapods brauchen einen eigenen Server.
GeneCode

2
Noch genauso langsam 5 Jahre später. 20.000 pro Sekunde für eine riesige Datei. Lächerlich.
Hasen

Antworten:


552

Ich bin auf dasselbe Problem gestoßen und habe es gelöst, indem ich die folgenden Befehle ausgeführt habe, die hier angegeben sind

pod repo remove master
pod setup
pod install

64
cocoapods - 'pod repo remove master' dauert ewig. Müssen Sie einen neuen Thread erstellen? :)
dmitrynikolaev

6
Danke, es funktioniert für mich. Und Sie können auch --verbose hinzufügen, um detaillierte Debug-Informationen anzuzeigen
Signal

2
@dmitrynikolaev zuerst dachte ich, Pod Repo entfernen Master dauert auch ewig. Aber es stellt sich heraus, dass ich nur noch ein paar Minuten warten muss. Ihre benötigte Zeit kann variieren, da ich Ihre Pods-Konfiguration nicht kenne, sondern nur mehr Zeit gebe.
Chen Li Yong

22
Es wäre schön, der gegebenen Lösung eine Erklärung hinzuzufügen, um sie klar zu machen.
DevGansta

4
Sogar das Pod-Setup blieb bei folgendem $ / usr / bin / git-Klon hängen. Github.com/CocoaPods/Specs.git master Klonen in 'master' ... Sie können stattdessen das Pod-Setup überspringen 'git clone github.com/CocoaPods/Specs.git master'
Ammar Mujeeb

158

Du kannst rennen

pod install --verbose 

um zu sehen, was sich hinter den Kulissen abspielt. Zumindest wissen Sie, wo es steckt (es könnte sich um eine Git-Klon-Operation handeln, die aufgrund Ihres langsamen Netzwerks usw. zu lange dauert).

eine noch bessere Vorstellung davon zu haben, warum es feststeckt (wenn Sie ausführlich laufen, können Sie so etwas erreichen

-> 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'...

Um herauszufinden, wie groß das Git-Repo ist, das Sie klonen. Wenn Sie von Github klonen, können Sie dieses Format verwenden :

/repos/:user/:repo

So können Sie beispielsweise den oben genannten Repo-Typ kennenlernen

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

und der zurückgegebene JSON hat einen Größenschlüssel, Wert. so kehrte das oben genannte zurück

"size": 94014,

Das ist ca. 90mb. Kein Wunder, dass es ewig dauert! (Übrigens ... als ich das schrieb ... war es gerade fertig ... ha!)


Update: Eine häufige Aufgabe von Kakaofrüchten, bevor sie überhaupt mit dem Herunterladen der in Ihrer Poddatei aufgeführten Abhängigkeiten beginnen, ist das Herunterladen / Aktualisieren eines eigenen Repos (sie nennen es Einrichten von Cocoapods Master-Repo .

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
  ..

Die schlechte Nachricht ist , dass , wenn Sie das oben beschriebene Verfahren , um herauszufinden , wie groß die Kakaoschote Repo ist .. folgen werden Sie erhalten diese : „Größe“: 614.373, .. das ist eine Menge .

Um eine genauere Methode zu erhalten, um zu wissen, wie lange es dauert, nur Ihr eigenes Repo zu installieren, können Sie das Master-Repo für Kakaofrüchte separat einrichten, indem Sie Folgendes verwenden 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.

dann läuft pod install


15
Dies ist die einzige zusammenhängende Beschreibung von " WTF " -Kokapoden, die "bis zu" ist ... die ich je gesehen habe.
Alex Gray

2
Der Download des Master-Repos dauerte 20 Minuten und ich starrte nur auf einen blinkenden Cursor (und ich habe nur eine 150-MB-Internetverbindung und nur ein mieses MacBook Pro Retina i7)
woens

Das Spezifikationsverzeichnis enthält mehr als 17.000 Dateien / Verzeichnisse. Es ist nicht die git-freundlichste Herangehensweise an das, was zum Teufel sie dort tun.
Erik Reppen

Als ich diesen Befehl ausführte, zeigten mir meine Cocoapods, dass er fertig war. mit seiner Installation. Danke dir!
Jameela Huq

Meistens geht es um eine große Abhängigkeit, deren Download viel Zeit in
Anspruch

29

Mögliche Lösungen:

  1. Das Aktualisieren von Cocoa Pods kann dieses Problem beheben
  2. Die Pods wieder sauber und frisch installieren

CocoaPods aktualisieren

Terminal öffnen und eingeben:

$ sudo gem update cocoapods

Pods neu installieren

Schritt 1

Entfernen Sie alle Pods aus Ihrem Projekt ( schwieriger Teil ):

Manuell

  1. Entfernen Sie alle Pods-Datensätze in Build-Phasen Ihres Projekts (rot markiert).

Geben Sie hier die Bildbeschreibung ein

  1. Entfernen Sie libPods.a im Ordner Frameworks

Geben Sie hier die Bildbeschreibung ein

  1. Gehen Sie nun zum Projektverzeichnis und entfernen Sie Podfile.lock *, ** Pods- Ordner und Arbeitsbereich (auch aus dem Papierkorb entfernen ).

Automatische Verwendung von CocoaPods De-Integrate

Installieren

$ [sudo] gem install cocoapods-deintegrate

Lauf

$ pod deintegrate

Schritt 2

Hier werden wir die Pods erneut installieren

Ändern Sie Ihren Standort in Ihr Verzeichnis

$ cd yourprojectdirectory

Bearbeiten Sie die Poddatei, indem Sie die erforderlichen Zeilen hinzufügen

$ open -a Xcode podfile 

oder

$ nano podfile

Installieren Sie den Pod ENDLICH erneut

$ pod install

Hoffe das hilft


nutzlos. Habe gerade eine Neuinstallation von Cocoapods, Pod Init und Pod Installation gemacht, hängt einfach für immer
woens

@woens Nun, es hängt davon ab, welche Bibliotheken Sie abrufen. Sie können auch dieses Tool ausprobieren , mit dem die Pods aus dem Projekt entfernt werden, und dann die Installation erneut ausführen
E-Riddie,

keiner! das ist der springende Punkt. Dies geschieht, wenn Sie mit init beginnen und dann in einem leeren Projekt installieren.
Woens

@woens Was meinst du mit keiner? Wo ist der Punkt, um Pods zu installieren, wenn es überhaupt keine Pods gibt (wenn ich Sie richtig verstanden habe)?
E-Riddie

Starten Sie einfach ein leeres Projekt und bereiten Sie es vor, um später Dinge hinzuzufügen. Also: Erstellen Sie ein Xcode-Projekt, führen Sie pod init aus und führen Sie pod install aus. In diesem Moment hängt die Pod-Installation.
woens

19

Ich habe einen anderen Weg gefunden, um das Problem zu lösen

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

Für mich geht das.


Muss noch das erste Mal klonen.
Erik Reppen


13

Ab dem 15. August 2016 ist das Repo eine massive Datei mit 2,39 GB. Ich öffnete den Aktivitätsmonitor, um zu sehen, was das Terminal tat. Es wurde diese riesige Datei heruntergeladen.


13

Aktualisierte Antwort für 2019 - Das Cocoa Pods-Team hat ein eigenes CDN verwendet, mit dem dieses Problem behoben werden kann, das auf die Begrenzung der GitHub-Rate zurückzuführen ist, wie hier beschrieben: https://blog.cocoapods.org/CocoaPods-1.7.2/

TL; DR Sie müssen die Quellzeile in Ihrer folgenden ändern Podfile:

source 'https://cdn.cocoapods.org/'

Dies ist die richtige Antwort anno 2019. Wenn nur akzeptierte Antworten geändert werden könnten ...
Ian Kemp

8

Das hat bei mir funktioniert:

  1. Löschen Sie den gesamten Inhalt unter ~/.CocoaPods
  2. Löschen Sie Ihre bestehenden Podfile.lockund PodsOrdner.
  3. Lassen Sie Ihre PodFile intakt.
  4. Lauf sudo gem install cocoapods --verbose
  5. Lauf pod install --verbose

Ich empfehle die Verwendung des --verbose-Flags, da das Terminal nicht gut ist, wenn Sie Fortschritte bei einer Befehlsaktion erzielen. Die ausführliche Option hilft sehr!


5
Beachten Sie, dass das Master-Repo bei ~ / .cocoapods sehr groß ist (~ 1 GB). Das Löschen und Neuinstallieren dauert daher sehr lange. Wenn ich das bemerkt hätte, hätte ich es versucht, pod install --verbosebevor ich das Master-Repo gelöscht hätte.
BinaryNate

7

Gehen Sie einfach Schritt für Schritt die folgenden Schritte durch:

Laden Sie https://github.com/CocoaPods/Specs/archive/master.zip herunter

Führen Sie die folgenden Befehle im Terminal aus:

pod setup --verbose

Öffnen Sie die neue Registerkarte im Terminal und führen Sie sie aus

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

öffne master.zip (entpacke es)

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

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

cd [Projektordner]

pod install --no-repo-update


6

Leeren Sie den CocoaPods-Cache, laden Sie alle Pods erneut herunter und installieren Sie sie erneut, wie hier beschrieben

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

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

pod update

4

Wie in anderen Antworten erwähnt, dauert es ewig, weil die Größe des Cocoapods Master Repo riesig ist. Diese Zeit kann mit den folgenden Schritten reduziert werden.

1) Erstellen Sie einen privaten Pfad für die Spezifikationsdatei in Ihrem Github-Repository. Geben Sie diesen Pfad https://github.com/yourpathForspecs.git 'als Quelle in Ihrer Poddatei an.

2) Identifizieren Sie ALLE benötigten Repositorys und ihre Abhängigkeiten (in der Datei podspec.json zu Cocoapods für diese Repositorys angegeben) und beziehen Sie ihre podspec.json-Dateien von Cocoapods. Fügen Sie diese podspec.json-Dateien mit ihrem Ordner (z. B. dem Ordner mit der neuesten Version für Schrauben) in diesem Spezifikations-Repository hinzu.

3) Entfernen Sie die Quelle ' https://github.com/CocoaPods/Specs.git ' in der Poddatei

4) Pod-Update

Dies nimmt erheblich weniger Zeit in Anspruch, da hierfür nur die benötigten Pods anstelle des gesamten Cocoapods-Repositorys abgerufen und heruntergeladen werden müssen. In meinem Fall wurde die Pod-Aktualisierungszeit von durchschnittlich 15 bis 20 Minuten auf höchstens 3 bis 4 Minuten reduziert.


1

Schritte zur Pod-Installation

Erstes offenes Terminal:

chmod o-w /usr/local

sudo chmod o-w /usr/local

sudo gem install cocoapods

Wenn der Pod bereits in Ihrem System installiert ist, führen Sie die folgenden Schritte aus

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

1

Ich hatte das gleiche Problem und stellte dann fest, dass ich Network Conditioner immer noch auf "Very Bad Network" ausführte. Das Ausschalten löste das Problem.

Hoffe das hilft jemandem.



1

Ich hatte das gleiche Problem. Nach dem Rennen

pod install
Setting up CocoaPods master repo

Der iterm2 blieb beim Einrichten von CocoaPods hängen.

Ich habe das Problem durch Ausführen gelöst

sudo gem install CocoaPods

Dies wird auf der CocoaPods-Website erwähnt


0

Manchmal passiert mir auch und ich einfach:

pod clean
pod update --verbose


0

Lösung für mich im 11.2019

Hallo, ich habe viele Dinge ausprobiert, aber nichts hat funktioniert. Versuchen Sie einfach, eine Verbindung zu dieser Site https://cdn.cocoapods.org/ herzustellen, wenn Sie nicht einfach VPN verwenden und pod installusw. tun können. Vergessen Sie nicht, diese zu verwenden, --verboseum zu verstehen, was passiert.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.