cocoapods - 'pod install' lleva una eternidad


276

Intenté actualizar los pods existentes con el pod installcomando, pero se tarda una eternidad en ejecutarse.

El modo detallado muestra que estaba atascado en la siguiente línea (para siempre)

Actualización del repositorio de especificaciones master

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

No hay actividad de red después de que se atasque.


14
Después de estar atascado durante 90 minutos, pod installpasa a la siguiente etapa. Supongo que no soy muy paciente.
Hai Feng Kao

10
ejecute pod install --verbose para ver más información de depuración. La situación general es que la actualización de git lleva demasiado tiempo. Si no necesita actualización, ejecute pod install --no-repo-update
Wellbin Huang

2
Dice algo sobre la calidad de la vaina. Esos tipos necesitan arreglar eso pronto. Me estoy estancando en esto cada vez que tengo que lidiar con el pod.
Jonny

1
@HaiFengKao, estaba preocupado porque mi internet no es bueno, lo rastreé, se descargaron unos 350MB. Gracias por el enlace, creo que los cocoapods necesitan su propio servidor.
GeneCode

2
Todavía igualmente lento 5 años después. 20k por segundo para un archivo enorme. Ridículo.
Hasen

Respuestas:


552

Me encontré con el mismo problema y lo resolví ejecutando los siguientes comandos que se dan aquí

pod repo remove master
pod setup
pod install

64
cocoapods - 'pod repo remove master' lleva una eternidad. ¿Necesitas crear un nuevo hilo? :)
dmitrynikolaev

66
Gracias, funciona para mí. Y también puede agregar --verbose para mostrar información de depuración detallada
señal

2
@dmitrynikolaev al principio pensé que pod repo remove master también lleva una eternidad. Pero resulta que solo necesito varios minutos más para esperar. Su tiempo necesario puede variar porque no conozco la configuración de sus pods, pero solo deme más tiempo.
Chen Li Yong el

22
Sería bueno agregar una explicación a la solución dada para que quede claro.
DevGansta

44
Incluso la configuración del pod se atascó en el siguiente, $ / usr / bin / git clone github.com/CocoaPods/Specs.git master Clonación en 'master' ... Puede omitir la configuración del pod en su lugar "Vaya a ~ / .cocoapods / repos y ejecute 'git clone github.com/CocoaPods/Specs.git master'
Ammar Mujeeb

158

Tu puedes correr

pod install --verbose 

para ver qué sucede detrás de escena ... al menos sabrás dónde está atascado (podría ser una operación de clonación de git que está tomando demasiado tiempo debido a tu red lenta, etc.)

para tener una idea aún mejor de por qué parece estar atascado (la ejecución detallada puede proporcionarle algo como esto

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

es averiguar el tamaño del repositorio de git que estás clonando ... si estás clonando desde github ... puedes usar este formato :

/repos/:user/:repo

así, por ejemplo, para conocer el tipo de repositorio anterior

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

y el JSON devuelto tendrá una clave de tamaño, valor. entonces lo anterior regresó

"size": 94014,

que es de aproximadamente 90mb. ¡no es de extrañar que esté tomando una eternidad! (por cierto ... cuando escribí esto ... acababa de terminar ... ¡ja!)


actualización: una cosa común que hacen las vainas de cacao antes de que incluso comience a descargar las dependencias enumeradas en su podfile, es descargar / actualizar su propio repositorio (lo llaman Configuración del repositorio principal de Cocoapods ... mire esto:

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 mala noticia es que si sigue el procedimiento anterior para averiguar qué tan grande es el repositorio de vaina de cacao ... obtendrá esto : "tamaño": 614373, ... que es mucho .

para obtener una forma más precisa de saber cuánto tiempo lleva instalar su propio repositorio ... puede configurar el repositorio maestro de vainas de cacao por separado usando 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.

luego corriendo pod install


15
Esta es la única descripción coherente de los cacaopodos " WTF " que son "hasta" ... que he visto.
Alex Gray

2
la descarga del repositorio principal me llevó 20 minutos mirando solo un cursor parpadeante (y solo tengo una conexión a Internet de 150Mb y solo un pésimo macbook pro retina i7)
woens

Hay más de 17,000 archivos / directorios en el directorio de especificaciones. No es el enfoque más amigable para cualquier cosa que estén haciendo allí.
Erik Reppen

Cuando ejecuté este comando, mis cocoapods me mostraron que estaba terminado. Con su instalación. ¡Gracias!
Jameela Huq

La mayoría de las veces se trata de una gran dependencia que lleva mucho tiempo descargar
OhadM

29

Soluciones posibles:

  1. La actualización de Cocoa Pods puede resolver este problema
  2. Instalar vainas limpias y frescas nuevamente

Actualizando CocoaPods

Abra la terminal y escriba:

$ sudo gem update cocoapods

Reinstalar Pods

Paso 1

Elimine todos los pods de su proyecto ( parte difícil ):

A mano

  1. Elimine todos los registros de pods en las fases de compilación de su proyecto (marcado rojo)

ingrese la descripción de la imagen aquí

  1. Eliminar libPods.a en la carpeta Frameworks

ingrese la descripción de la imagen aquí

  1. Ahora diríjase al directorio del proyecto y elimine Podfile.lock *, ** Carpeta Pods y Área de trabajo (Eliminar también de la Papelera ).

Usando automáticamente CocoaPods Des-Integrate

Instalar en pc

$ [sudo] gem install cocoapods-deintegrate

correr

$ pod deintegrate

Paso 2

Aquí vamos a instalar nuevamente los Pods

Cambia tu ubicación tu directorio

$ cd yourprojectdirectory

Edite el podfile agregando las líneas que necesita

$ open -a Xcode podfile 

o

$ nano podfile

FINALMENTE instale el pod nuevamente

$ pod install

Espero que esto ayude


inútil. Acabo de hacer una nueva instalación de cocoapods, pod init y pod install simplemente se cuelga para siempre
woens

@woens Bueno, depende de qué bibliotecas estés buscando. También puede probar esta herramienta que
desintegra

¡ninguna! ese es todo el punto. Esto sucede cuando comienza con init, luego lo instala en un proyecto vacío.
Woens

@woens ¿Qué quieres decir con ninguno? ¿Dónde está el punto de instalar pods cuando no hay ningún pod (si te entendí correctamente)?
E-Riddie

solo comienza un proyecto vacío y prepáralo para agregar cosas más tarde. entonces: cree un proyecto xcode, ejecute pod init, ejecute pod install. En este momento, la instalación de pod se bloquea.
woens

19

Encontré otra forma de resolver el problema.

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

esto funciona para mi.


Todavía tengo que clonar la primera vez.
Erik Reppen

14

A partir del 15 de agosto de 2016, el repositorio es un archivo masivo de 2,39 GB. Abrí el Monitor de actividad para ver lo que estaba haciendo la terminal. Estaba descargando este archivo enorme.


13

Como se señaló aquí, el proceso git-remote-http se ejecuta en segundo plano . Pasé a este proceso desde Activity Monitor y al salir de este proceso reanudé el proceso de pod que estaba atascado en " Actualización de repositorios de especificaciones locales " después de la INSTALACIÓN DE POD


13

Respuesta actualizada para 2019: el equipo de vainas de cacao pasó a usar su propia CDN que resuelve este problema, que se debió a la limitación de la tasa de GitHub, como se describe aquí: https://blog.cocoapods.org/CocoaPods-1.7.2/

TL; DR Debe cambiar la línea de origen en su Podfilea esto:

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

Esta es la respuesta correcta en el año 2019. Si solo se pudieran cambiar las respuestas aceptadas ...
Ian Kemp

9

Esto es lo que funcionó para mí:

  1. Eliminar todo el contenido en ~/.CocoaPods
  2. Eliminar su existente Podfile.locky Podscarpeta.
  3. Deje su PodFile intacto.
  4. correr sudo gem install cocoapods --verbose
  5. correr pod install --verbose

Recomiendo usar el indicador --verbose ya que Terminal no es excelente cuando se avanza en una acción de comando. ¡La opción detallada ayuda mucho!


55
Tenga en cuenta que el repositorio principal en ~ / .cocoapods es enorme (~ 1 GB), por lo que eliminarlo y reinstalarlo lleva mucho tiempo. Si me hubiera dado cuenta de esto, lo habría intentado pod install --verboseantes de recurrir a eliminar el repositorio principal.
BinaryNate

7

Simplemente siga los pasos a continuación:

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

EJECUTE los siguientes comandos en la terminal:

pod setup --verbose

Abra una nueva pestaña en la terminal y EJECUTE

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

abrir master.zip (descomprimirlo)

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

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

cd [carpeta de proyecto]

instalación de pod --no-repo-update


6

Intente borrar el caché de CocoaPods, vuelva a descargar y vuelva a instalar todos los pods como se describe aquí

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

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

pod update

4

Como se menciona en otras respuestas, lleva una eternidad porque el tamaño del repositorio maestro de cocoapods es enorme. Este tiempo puede reducirse utilizando los siguientes pasos.

1) Cree una ruta de archivo de especificaciones privadas en su repositorio de github. Proporcione esta ruta https://github.com/yourpathForspecs.git 'como fuente en su archivo de pod.

2) identifique TODOS los repositorios que necesita y sus dependencias (mencionados en el archivo podspec.json en cocoapods para estos repositorios) y obtenga sus archivos podspec.json de cocoapods. agregue estos archivos podspec.json con su carpeta (por ejemplo, la carpeta de la última versión para tornillos) en este repositorio de especificaciones.

3) elimine la fuente ' https://github.com/CocoaPods/Specs.git ' en el podfile

4) actualización de pod

Esto llevará mucho menos tiempo ya que esto requiere buscar y descargar solo las vainas que necesita en lugar de todo el repositorio de cocoapods. En mi caso, redujo el tiempo de actualización del pod de 15-20 minutos en promedio a 3-4 minutos como máximo.


1

Pasos de instalación de pod

Primera terminal abierta:

chmod o-w /usr/local

sudo chmod o-w /usr/local

sudo gem install cocoapods

si ya está instalado el pod en su sistema, siga los pasos a continuación

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

Tuve el mismo problema, luego me di cuenta de que todavía estaba ejecutando Network Conditioner en "Very Bad Network". Desactivar eso resolvió el problema.

Espero que ayude a alguien.



1

Tuve el mismo problema. despues de correr

pod install
Setting up CocoaPods master repo

El iterm2 estaba atascado en Configuración de CocoaPods.

Resolví el problema ejecutando

sudo gem install CocoaPods

Esto se menciona en el sitio web de CocoaPods


0

A veces me pasa a mí también y simplemente:

pod clean
pod update --verbose


0

Solución para mí en 11.2019

Hola, probé muchas cosas, pero nada funcionó. Intente conectarse a este sitio https://cdn.cocoapods.org/ si no puede, simplemente use VPN y hágalo, pod installetc. Y no olvide usarlo --verbosepara comprender lo que está sucediendo.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.