cocoapods - 'pod install' prend une éternité


276

J'essayais de mettre à jour les pods existants avec la pod installcommande, mais cela prend une éternité pour s'exécuter.

Le mode verbeux montre qu'il était bloqué sur la ligne suivante (pour toujours)

Mise à jour du référentiel de spécifications master

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

Il n'y a aucune activité réseau après son blocage.


14
après avoir été coincé pendant 90 minutes, pod installpasse à l'étape suivante. Je suppose que je ne suis pas très patient.
Hai Feng Kao

10
exécutez pod install --verbose pour voir plus d'informations de débogage. La situation générale est que la mise à jour git prend trop de temps. Si vous n'avez pas besoin de mise à jour, exécutez pod install --no-repo-update
Wellbin Huang

2
Dit quelque chose sur la qualité du pod. Ces gars-là doivent régler ça bientôt. Je suis coincé à ce sujet chaque fois que je dois faire face à un pod.
Jonny

1
@HaiFengKao, j'étais inquiet parce que mon internet n'est pas bon. Je l'ai suivi, il s'agissait d'environ 350 Mo en cours de téléchargement. Thx pour le lien, je pense que les cocoapods ont besoin de leur propre serveur.
GeneCode

2
Toujours aussi lent 5 ans plus tard. 20k par seconde pour un énorme fichier. Ridicule.
Hasen

Réponses:


552

J'ai rencontré le même problème, et je l'ai résolu en exécutant les commandes suivantes qui sont données ici

pod repo remove master
pod setup
pod install

64
cocoapods - 'pod repo remove master' prend une éternité. Besoin de créer un nouveau fil? :)
dmitrynikolaev

6
Merci, cela fonctionne pour moi.et vous pouvez également ajouter --verbose pour afficher des informations de débogage détaillées
signal

2
@dmitrynikolaev au début, je pensais que le repo de suppression de pod master prend également une éternité. Mais il s'avère que j'ai juste besoin de quelques minutes de plus pour attendre. Votre temps nécessaire peut varier car je ne connais pas la configuration de vos pods, mais donnez-lui juste plus de temps.
Chen Li Yong

22
Il serait bon d'ajouter une explication à la solution donnée pour la clarifier.
DevGansta

4
Même la configuration du pod est bloquée à la suite, $ / usr / bin / git clone github.com/CocoaPods/Specs.git master Clonage dans 'master' ... Vous pouvez ignorer la configuration du pod à la place "Allez à ~ / .cocoapods / repos et exécutez 'git clone github.com/CocoaPods/Specs.git master'
Ammar Mujeeb

158

tu peux courir

pod install --verbose 

pour voir ce qui se passe dans les coulisses .. au moins vous saurez où il est bloqué (cela pourrait être une opération de clonage git qui prend trop de temps en raison de votre réseau lent, etc.)

pour avoir une meilleure idée de la raison pour laquelle il semble être bloqué (l'exécution verbeuse peut vous donner quelque chose comme ça

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

est de connaître la taille du dépôt git que vous clonez .. si vous clonez depuis github .. vous pouvez utiliser ce format :

/repos/:user/:repo

Ainsi, par exemple, pour découvrir le type de référentiel ci-dessus

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

et le JSON retourné aura une clé de taille, une valeur. donc ce qui précède est revenu

"size": 94014,

ce qui fait environ 90mb. pas étonnant que ça prenne une éternité! (btw .. au moment où j'ai écrit ça .. ça vient de finir .. ha!)


mise à jour: une chose courante que les cabosses de cacao font avant même de commencer à télécharger les dépendances répertoriées dans votre podfile, est de télécharger / mettre à jour son propre référentiel (ils l'appellent Configurer le référentiel principal de Cocoapods .. regardez ceci:

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

la mauvaise nouvelle est que si vous suivez la procédure ci-dessus pour découvrir la taille du repo de cabosse de cacao .. vous obtiendrez ceci : "taille": 614373, .. ce qui est beaucoup .

Donc, pour obtenir un moyen plus précis de savoir combien de temps il suffit d'installer votre propre référentiel .. vous pouvez configurer séparément le référentiel maître des cosses de cacao en utilisant 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.

puis en cours d'exécution pod install


15
C'est la seule description cohérente des cocoapodes " WTF " "jusqu'à" ... que j'ai jamais vue.
Alex Gray

2
le téléchargement du repo principal m'a pris 20 minutes à regarder juste un curseur clignotant (et je n'ai qu'une connexion Internet de 150 Mo et juste un macbook pro retina i7 moche)
woens

Il y a plus de 17 000 fichiers / répertoires dans le répertoire specs. Ce n'est pas l'approche la plus conviviale pour tout ce qu'ils font là-bas.
Erik Reppen

Lorsque j'ai exécuté cette commande, mes cocoapods m'ont montré qu'elle était terminée. avec son installation. Je vous remercie!
Jameela Huq

La plupart du temps, il s'agit d'une grosse dépendance qui prend beaucoup de temps à télécharger
OhadM

29

Solutions possibles:

  1. La mise à jour de Cocoa Pods peut résoudre ce problème
  2. Pods d'installation propres et frais à nouveau

Mise à jour de CocoaPods

Terminal ouvert et tapez:

$ sudo gem update cocoapods

Réinstaller les pods

Étape 1

Supprimez tous les pods de votre projet ( partie délicate ):

Manuellement

  1. Supprimez tous les enregistrements Pods sur les phases de construction de votre projet (marqué en rouge)

entrez la description de l'image ici

  1. Supprimer libPods.a sous le dossier Frameworks

entrez la description de l'image ici

  1. Maintenant, dirigez-vous vers le répertoire du projet et supprimez Podfile.lock *, ** le dossier Pods et Workspace (Supprimer également de la corbeille ).

Utilisation automatique de CocoaPods De-Integrate

Installer

$ [sudo] gem install cocoapods-deintegrate

Courir

$ pod deintegrate

Étape 2

Ici, nous allons à nouveau installer les pods

Changez votre emplacement votre répertoire

$ cd yourprojectdirectory

Modifiez le fichier pod en y ajoutant les lignes dont vous avez besoin

$ open -a Xcode podfile 

ou

$ nano podfile

Réinstallez enfin le pod

$ pod install

J'espère que cela t'aides


inutile. Je viens de faire une nouvelle installation de cocoapods, pod init et pod install se bloque pour toujours
woens

@woens Eh bien, cela dépend des bibliothèques que vous récupérez. Vous pouvez également essayer cet outil qui
désintègre

aucun! exactement. cela se produit lorsque vous démarrez avec init, puis installez sur un projet vide.
Lisse

@woens Que voulez-vous dire par aucun? Où est le point d'installer des pods quand il n'y en a pas du tout (si je vous ai bien compris)?
E-Riddie

juste commencer un projet vide et le préparer pour ajouter des choses plus tard. donc: créez un projet xcode, lancez pod init, lancez pod install. À ce moment, l'installation du pod se bloque.
Lisse

19

J'ai trouvé un autre moyen de résoudre le problème

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

ça marche pour moi.


Reste à cloner la première fois.
Erik Reppen

14

Au 15 août 2016, le dépôt est un fichier massif de 2,39 Go. J'ai ouvert le moniteur d'activité pour voir ce que faisait le terminal. Il téléchargeait cet énorme fichier.



13

Réponse mise à jour pour 2019 - l'équipe des cabosses de cacao est passée à l'utilisation de son propre CDN qui résout ce problème, qui était dû à la limitation du taux GitHub, comme décrit ici: https://blog.cocoapods.org/CocoaPods-1.7.2/

TL; DR Vous devez changer la ligne source de votre Podfileen ceci:

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

C'est la bonne réponse anno 2019. Si seulement les réponses acceptées pouvaient être modifiées ...
Ian Kemp

9

C'est ce qui a fonctionné pour moi :

  1. Supprimer tout le contenu sous ~/.CocoaPods
  2. Supprimez votre existant Podfile.locket Podsdossier.
  3. Laissez votre PodFile intact.
  4. Courir sudo gem install cocoapods --verbose
  5. Courir pod install --verbose

Je recommande d'utiliser l'indicateur --verbose car Terminal n'est pas parfait pour donner une progression sur une action de commande. L'option verbeuse aide beaucoup!


5
Sachez que le dépôt principal sur ~ / .cocoapods est énorme (~ 1 Go), donc sa suppression et sa réinstallation prennent beaucoup de temps. Si je l'avais réalisé, j'aurais essayé pod install --verboseavant de recourir à la suppression du référentiel maître.
BinaryNate

7

Suivez simplement les étapes ci-dessous:

Téléchargez https://github.com/CocoaPods/Specs/archive/master.zip

Exécutez les commandes ci-dessous dans le terminal:

pod setup --verbose

Ouvrir un nouvel onglet dans le terminal et exécuter

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

ouvrez master.zip (décompressez-le)

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

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

cd [dossier de projet]

installation du pod --no-repo-update


6

Essayez de vider votre cache CocoaPods, téléchargez à nouveau et réinstallez tous les pods comme décrit ici

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

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

pod update

4

Comme mentionné dans d'autres réponses, cela prend une éternité car la taille du repo maître des cocoapods est énorme. Ce temps peut être réduit en utilisant les étapes suivantes.

1) Créez un chemin de fichier de spécifications privé sur votre référentiel github. Fournissez ce chemin https://github.com/yourpathForspecs.git 'comme source dans votre podfile.

2) identifier TOUS les référentiels dont vous avez besoin et leurs dépendances (mentionnés dans le fichier podspec.json sur les cocoapods pour ces référentiels) et obtenir leurs fichiers podspec.json des cocoapods. ajoutez ces fichiers podspec.json avec leur dossier (disons le dernier dossier de version pour les boulons) dans ce référentiel de spécifications.

3) supprimez la source ' https://github.com/CocoaPods/Specs.git ' dans le podfile

4) Mise à jour du pod

Cela prendra beaucoup moins de temps car cela nécessite de récupérer et de télécharger uniquement les pods dont vous avez besoin au lieu du référentiel entier de cocoapods. Dans mon cas, cela a réduit le temps de mise à jour du pod de 15 à 20 minutes en moyenne à 3 à 4 minutes au maximum.


1

Étapes d'installation du pod

Premier terminal ouvert:

chmod o-w /usr/local

sudo chmod o-w /usr/local

sudo gem install cocoapods

si le pod est déjà installé dans votre système, suivez les étapes ci-dessous

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

J'ai eu le même problème, j'ai alors réalisé que j'utilisais toujours Network Conditioner sur "Very Bad Network". Désactiver cela a résolu le problème.

J'espère que cela aide quelqu'un.



1

J'ai eu le même problème. Après avoir couru

pod install
Setting up CocoaPods master repo

L'iterm2 était bloqué lors de la configuration de CocoaPods.

J'ai résolu le problème en exécutant

sudo gem install CocoaPods

Ceci est mentionné dans le site Web de CocoaPods


0

Parfois, ça m'arrive aussi et j'ai simplement:

pod clean
pod update --verbose


0

Solution pour moi dans 11.2019

Bonjour j'ai essayé beaucoup de choses, mais rien n'a fonctionné. Essayez simplement de vous connecter à ce site https://cdn.cocoapods.org/ si vous ne pouvez pas simplement utiliser VPN et faire pod installetc. Et n'oubliez pas d'utiliser --verbosepour comprendre ce qui se passe.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.