cocoapods - 'pod install' leva uma eternidade


276

Eu estava tentando atualizar os pods existentes com o pod installcomando, mas leva uma eternidade para executar.

O modo detalhado mostra que ele ficou preso na linha a seguir (para sempre)

Atualizando o repositório de especificações master

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

Não há atividade de rede depois que ela fica travada.


14
depois de ficar preso por 90 minutos, pod installprossegue para a próxima etapa. Acho que não sou muito paciente.
Hai Feng Kao

10
execute pod install --verbose para ver mais informações sobre depuração. A situação geral é que a atualização do git leva muito tempo. Se você não precisar de atualização, execute o pod install --no-repo-update
Wellbin Huang

2
Diz algo sobre a qualidade do pod. Esses caras precisam consertar isso em breve. Estou ficando preso nisso toda vez que tenho que lidar com o pod.
Jonny

1
@HaiFengKao, eu estava preocupado porque minha internet não é boa. Eu a rastreei, eram cerca de 350 MB sendo baixados. Thx pelo link, acho que os cocoapods precisam de seu próprio servidor.
GeneCode 13/09

2
Ainda igualmente lento 5 anos depois. 20k por segundo para um arquivo enorme. Ridículo.
Hasen

Respostas:


552

Encontrei o mesmo problema e resolvi-o executando os seguintes comandos que são dados aqui

pod repo remove master
pod setup
pod install

64
cocoapods - 'pod repo remove master' leva uma eternidade. Precisa criar um novo tópico? :)
dmitrynikolaev

6
Obrigado, ele funciona para mim. E você também pode adicionar --verbose para mostrar informações detalhadas sobre depuração
sinalize

2
@dmitrynikolaev no começo eu pensei que pod repo remove master também leva uma eternidade. Mas acontece que só preciso de mais alguns minutos para esperar. O tempo necessário pode variar, porque eu não conheço a configuração dos seus pods, mas aguarde mais.
Chen Li Yong

22
Seria bom adicionar uma explicação para a solução fornecida para deixar claro.
DevGansta

4
Até a configuração do pod parou no seguinte, $ / usr / bin / git clone github.com/CocoaPods/Specs.git master Clonando em 'master' ... Você pode pular a configuração do pod em vez de "Vá para ~ / .cocoapods / repos e execute 'git clone github.com/CocoaPods/Specs.git master'
Ammar Mujeeb 5/16

158

você pode correr

pod install --verbose 

para ver o que está acontecendo nos bastidores .. pelo menos você saberá onde está preso (pode ser uma operação de clone do git que está demorando muito por causa da sua rede lenta, etc.)

para ter uma idéia ainda melhor de por que parece estar bloqueado (executar detalhadamente pode obter algo assim

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

é descobrir o tamanho do repositório git que você está clonando. Se você estiver clonando no github, pode usar este formato :

/repos/:user/:repo

por exemplo, para descobrir o tipo de repositório acima

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

e o JSON retornado terá uma chave de tamanho, valor. então o acima retornou

"size": 94014,

que é aproximadamente 90mb. Não é de admirar que esteja demorando para sempre! (btw .. no momento em que escrevi isso .. acabou de terminar .. ha!)


update: uma coisa comum que os vagens de cacau fazem antes mesmo de começar a baixar as dependências listadas no seu podfile é fazer o download / atualizar seu próprio repositório (eles chamam de Configurando o Cocoapods Master repo . veja isto:

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

a má notícia é que, se você seguir o procedimento acima para descobrir qual é o tamanho do repositório de vagens de cacau, receberá o seguinte : "size": 614373, .. o que é muito .

para obter uma maneira mais precisa de saber quanto tempo leva para instalar seu próprio repositório .. você pode configurar o repositório principal de cacau pods separadamente 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.

então correndo pod install


15
Esta é a única descrição coerente dos cocoapods " WTF " que estão "à altura" ... que eu já vi.
Alex Gray

2
A descarga do repo mestre me levou 20 minutos olhando para apenas um cursor piscando (e eu só tenho uma conexão de internet 150Mb e apenas um péssimo MacBook Pro retina i7)
woens

Existem mais de 17.000 arquivos / diretórios no diretório de especificações. Não é a abordagem mais amigável para o que diabos eles estão fazendo lá.
Erik Reppen

Quando executei esse comando, meus cocoapods me mostraram que estava terminado. com sua instalação. Obrigado!
Jameela Huq

Na maioria das vezes trata-se de uma grande dependência que leva muito tempo para baixar
OhadM

29

Soluções possíveis:

  1. A atualização de vagens de cacau pode resolver esse problema
  2. Pods de instalação limpos e frescos novamente

Atualizando o CocoaPods

Terminal aberto e tipo:

$ sudo gem update cocoapods

Reinstalar pods

Passo 1

Remova todos os pods do seu projeto ( parte complicada ):

Manualmente

  1. Remova todos os registros de Pods nas fases de construção do seu projeto (vermelho marcado)

insira a descrição da imagem aqui

  1. Remova libPods.a na pasta Frameworks

insira a descrição da imagem aqui

  1. Agora vá para o diretório do projeto e remova o Podfile.lock *, ** pasta Pods e espaço de trabalho (remova do lixo também).

Automaticamente usando o CocoaPods De-Integrate

Instalar

$ [sudo] gem install cocoapods-deintegrate

Corre

$ pod deintegrate

Passo 2

Aqui estamos instalando os Pods novamente

Alterar sua localização, seu diretório

$ cd yourprojectdirectory

Edite podfile adicionando linhas necessárias

$ open -a Xcode podfile 

ou

$ nano podfile

FINALMENTE instale o pod novamente

$ pod install

Espero que isto ajude


sem utilidade. Acabei de fazer uma nova instalação de cocoapods, pod init e pod install apenas trava para sempre
woens

@ woens Bem, depende de quais bibliotecas você está buscando. Você pode tentar também esta ferramenta que de-integra as vagens do projeto, e depois executar instalação novamente
E-Riddie

Nenhum! esse é o ponto inteiro. isso acontece quando você inicia com o init e instala em um projeto vazio.
Woens 18/03/16

@woens O que você quer dizer com ninguém? Onde está o ponto de instalar pods quando não há pods (se eu entendi corretamente)?
E-Riddie

apenas iniciando um projeto vazio e prepare-o para adicionar coisas posteriormente. então: crie um projeto xcode, execute pod init, execute pod install. Neste momento, a instalação do pod trava.
woens 18/03/16

19

Encontrei outra maneira de resolver o problema

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

funciona para mim.


Ainda tem que clonar a primeira vez.
Erik Reppen

14

A partir de 15 de agosto de 2016, o repositório era um arquivo enorme de 2,39 GB. Abri o Activity Monitor para ver o que o terminal estava fazendo. Ele estava baixando esse arquivo enorme.



13

Resposta atualizada para 2019 - a equipe de cacau pods passou a usar seu próprio CDN que resolve esse problema, devido à limitação da taxa do GitHub, conforme descrito aqui: https://blog.cocoapods.org/CocoaPods-1.7.2/

TL; DR Você precisa alterar a linha de origem no seu Podfilepara:

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

Esta é a resposta correta anno 2019. Se as respostas só aceitou poderia ser mudado ...
Ian Kemp

9

Isto é o que funcionou para mim :

  1. Exclua todo o conteúdo em ~/.CocoaPods
  2. Exclua sua pasta Podfile.locke existente Pods.
  3. Deixe seu PodFile intacto.
  4. Corre sudo gem install cocoapods --verbose
  5. Corre pod install --verbose

Eu recomendo usar o sinalizador --verbose, já que o Terminal não é ótimo ao dar progresso em uma ação de comando. A opção detalhada ajuda muito!


5
Lembre-se de que o repositório principal em ~ / .cocoapods é enorme (~ 1 GB), portanto, a exclusão e a reinstalação leva muito tempo. Se eu tivesse percebido isso, teria tentado pod install --verboseantes de recorrer à exclusão do repositório principal.
BinaryNate 22/03

7

Basta seguir o passo a passo abaixo:

Faça o download de https://github.com/CocoaPods/Specs/archive/master.zip

Execute os comandos Abaixo no terminal:

pod setup --verbose

Abra uma nova guia no terminal e execute

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

abra master.zip (descompacte-o)

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

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

cd [pasta do projeto]

instalação do pod --no-repo-update


6

Tente limpar o cache do CocoaPods, faça o download novamente e reinstale todos os pods, conforme descrito aqui

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

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

pod update

4

Como mencionado em outras respostas, leva uma eternidade, porque o tamanho do repositório principal de cocoapods é enorme. Esse tempo pode ser reduzido usando as seguintes etapas.

1) Crie um caminho de arquivo de especificações particulares no seu repositório do github. Forneça esse caminho https://github.com/yourpathForspecs.git 'como uma fonte em seu podfile.

2) identifique TODOS os repositórios Você precisa e suas dependências (mencionadas no arquivo podspec.json nos cocoapods para esses repositórios) e obtenha seus arquivos podspec.json nos cocoapods. adicione esses arquivos podspec.json à sua pasta (por exemplo, a pasta da versão mais recente dos parafusos) neste repositório de especificações.

3) remova a fonte ' https://github.com/CocoaPods/Specs.git ' no podfile

4) atualização do pod

Isso levará muito menos tempo, pois é necessário buscar e fazer o download apenas dos pods necessários em vez do repositório inteiro de cocoapods. No meu caso, reduziu o tempo de atualização do pod de 15-20 minutos em média para 3-4 minutos no máximo.


1

Etapas de instalação do pod

Primeiro Terminal Aberto:

chmod o-w /usr/local

sudo chmod o-w /usr/local

sudo gem install cocoapods

se o pod já estiver instalado no seu sistema, siga as etapas abaixo

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

Eu tinha o mesmo problema, então percebi que ainda estava executando o Condicionador de Rede em "Very Bad Network". Desativar isso resolveu o problema.

Espero que ajude alguém.



1

Eu tive o mesmo problema. Depois de correr

pod install
Setting up CocoaPods master repo

O iterm2 estava bloqueado em Configurando o CocoaPods.

Resolvi o problema executando

sudo gem install CocoaPods

Isso é mencionado no site da CocoaPods


0

Às vezes também acontece comigo e eu simplesmente:

pod clean
pod update --verbose


0

Solução para mim em 11.2019

Olá, tentei muitas coisas, mas nada funcionou. Tente conectar-se a este site https://cdn.cocoapods.org/ se não puder, basta usar a VPN e fazer pod installetc. E não se esqueça de usar --verbosepara entender o que está acontecendo.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.