cocoapods - 'pod install' триває назавжди


276

Я намагався оновити існуючі стручки pod installкомандою, але це запускається вічно.

Докладний режим показує, що він застряг у наступному рядку (назавжди)

Оновлення специфікації репо master

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

Немає жодної мережевої активності після її заїдання.


14
після затримування протягом 90 хвилин pod installпереходить до наступного етапу. Я думаю, я не дуже терплячий.
Хай Фен Као

10
запустіть pod install --verbose, щоб побачити більше інформації про налагодження. Загальна ситуація - оновлення git займає занадто багато часу. Якщо вам не потрібно оновлення, запустіть pod install --no-repo-update
Wellbin Huang

2
Щось говорить про якість стручка. Цим хлопцям потрібно це скоро виправити. Я зациклююся на цьому щоразу, коли мені доводиться мати справу з стручком.
Джоні

1
@HaiFengKao, я хвилювався через те, що мій Інтернет не гарний. Я відстежував це, завантажувалося близько 350 Мб. Thx для посилання, я думаю, що cocoapods потребує власного сервера.
GeneCode

2
Ще однаково повільно 5 років. 20 к секунд для величезного файлу. Смішно.
Hasen

Відповіді:


552

Я зіткнувся з тією ж проблемою, і я вирішив її, виконавши наступні команди, які наведені тут

pod repo remove master
pod setup
pod install

64
cocoapods - 'pod repo remove master' займе назавжди. Потрібно створити нову нитку? :)
dmitrynikolaev

6
Дякую, це працює для мене. А також ви можете додати --verbose, щоб показати детальну інформацію про налагодження
сигнал

2
@dmitrynikolaev спочатку я подумав, що майстер pod repo delete також теж вічно. Але виявляється, мені потрібно ще кілька хвилин почекати. Ваш потрібний час може відрізнятися, тому що я не знаю конфігурації ваших стручків, але просто надайте їй більше часу.
Чень Лі Йонг

22
Було б непогано додати пояснення до даного рішення, щоб було зрозуміло.
DevGansta

4
Навіть налаштування стручка застрягло в наступному, $ / usr / bin / git clone github.com/CocoaPods/Specs.git master Клонування в "master" ... Ви можете пропустити налаштування pod замість "Перейти до ~ / .cocoapods / repos і запустити 'git clone github.com/CocoaPods/Specs.git master'
Ammar Mujeeb

158

ти можеш бігати

pod install --verbose 

щоб побачити, що відбувається за лаштунками ... принаймні ви будете знати, де він застряг (це може бути операція клонування Git, яка забирає занадто довго через вашу повільну мережу тощо)

мати ще краще уявлення про те, чому він, здається, застряг (запущений багатослівний ви можете отримати щось подібне

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

це дізнатися розмір git repo, який ви клонуєте .. якщо ви клонуєте з github .., ви можете використовувати цей формат :

/repos/:user/:repo

так, наприклад, щоб дізнатися про вищевказаний тип репо

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

і повернутий JSON матиме розмір, значення. тому вищезгадане повернулося

"size": 94014,

що становить приблизно 90 Мб. недарма це займає вічно! (btw .. до того моменту, як я це написав .. це щойно закінчилося .. га!)


оновлення: одна звичайна річ, яку роблять какао-стручки, перш ніж вона навіть почне завантажувати залежності, перелічені у вашому підфілі, - це завантажити / оновити власне репо (вони називають це Налаштування 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
  ..

погана новина полягає в тому, що якщо дотримуватися вищевказаної процедури, щоб дізнатися, наскільки великий репо-какао .. ви отримаєте таке : "розмір": 614373, .. що багато .

тож, щоб отримати більш точний спосіб дізнатися, скільки часу потрібно просто встановити власне репо .. Ви можете налаштувати майстер-репо какао-стручки окремо за допомогою 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.

потім біг pod install


15
Це єдиний узгоджений опис какаодів " WTF " - "до" ... що я коли-небудь бачив.
Алекс Грей,

2
завантаження майстра-репо зайняло у мене 20 хвилин, дивлячись на лише миготливий курсор (а у мене є лише 150Mb підключення до Інтернету та просто паршивий macbook pro retina i7)
woens

У каталозі специфікацій є 17 000+ файлів / каталогів. Це не найгірший дружній підхід до того, що б там не було, що вони там роблять.
Ерік Реппен

Коли я виконував цю команду, мої какаоди показали мені, що вона закінчена. з його встановленням. Дякую!
Jameela Huq

Здебільшого йдеться про велику залежність, яка потребує багато часу для завантаження
OhadM

29

Можливі рішення:

  1. Оновлення какао-стручків може вирішити цю проблему
  2. Знову чисті та свіжі встановіть стручки

Оновлення какаоподів

Відкрити термінал і ввести:

$ sudo gem update cocoapods

Перевстановити Pods

Крок 1

Видаліть усі стручки з вашого проекту ( хитра частина ):

Вручну

  1. Видаліть усі записи Pods на фазах збірки вашого проекту (Позначено червоним)

введіть тут опис зображення

  1. Видаліть libPods.a в папці Frameworks

введіть тут опис зображення

  1. Тепер перейдіть до каталогу проектів та видаліть Podfile.lock *, ** папку Pods та робочу область (Видаліть також із кошика ).

Автоматичне використання CocoaPods De-Integrate

Встановити

$ [sudo] gem install cocoapods-deintegrate

Біжи

$ pod deintegrate

Крок 2

Ось ми знову переглядаємо встановлення Pods

Змініть своє місцезнаходження у своєму каталозі

$ cd yourprojectdirectory

Відредагуйте підфайл, додавши до нього потрібні рядки

$ open -a Xcode podfile 

або

$ nano podfile

ОСТАНО встановіть стручок знову

$ pod install

Сподіваюсь, це допомагає


марний. Щойно зробили свіжу установку какаодів, стручковий ініт і встановити стручку, що навішується назавжди,
1616

@woens Ну, це залежить від того, які бібліотеки ви отримуєте. Ви можете також спробувати цей інструмент, який де-інтегрує стручки від проекту, а потім запустіть інсталяцію знову
E-Riddie

жоден! ось вся суть. це відбувається, коли ви починаєте з init, а потім встановлюєте на порожній проект.
woens

@woens Що ти не маєш на увазі? Де сенс встановлювати стручки, коли стручок взагалі немає (якщо я вас правильно зрозумів)?
E-Riddie

лише запускаючи порожній проект і готуючи його, щоб потім додати речі. так: створити проект xcode, запустити pod init, запустити встановити pod. У цей момент висівка встановлена.
woens

19

Я знайшов інший спосіб вирішити проблему

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

це працює для мене.


Клонувати все-таки доведеться перший раз.
Ерік Реппен

14

Станом на 15 серпня 2016 року, РЕПО є масовим файлом 2,39 ГБ. Я відкрив Монітор активності, щоб подивитися, що робить термінал. Він завантажував цей величезний файл.



13

Оновлений відповідь на 2019 рік - команда какао-стручків перейшла до використання власного CDN, який вирішує цю проблему, що було обумовлено обмеженням швидкості GitHub, як описано тут: https://blog.cocoapods.org/CocoaPods-1.7.2/

TL; DR Вам потрібно змінити вихідний рядок у своєму Podfile:

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

Це правильна відповідь anno 2019. Якби тільки прийняті відповіді могли бути змінені ...
Ian Kemp

9

Це для мене працювало:

  1. Видаліть увесь вміст під ~/.CocoaPods
  2. Видаліть наявну Podfile.lockта Podsпапку.
  3. Залиште свій PodFile недоторканим.
  4. Біжи sudo gem install cocoapods --verbose
  5. Біжи pod install --verbose

Я рекомендую використовувати прапор --verbose, оскільки термінал не є великим при досягненні прогресу в командній дії. Багатослівний варіант дуже допомагає!


5
Слідкуйте за тим, щоб майстер-репо в ~ / .cocoapods був величезним (~ 1 Гб), тому для видалення та перевстановлення потрібно багато часу. Якби я це зрозумів, я б спробував, pod install --verboseперш ніж вдаватися до видалення головного репо.
BinaryNate

7

Просто перегляньте крок за кроком нижче:

Завантажте https://github.com/CocoaPods/Specs/archive/master.zip

ВИКОНУЙТЕ команди нижче в терміналі:

pod setup --verbose

Відкрийте нову вкладку в терміналі та RUN

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

відкрити master.zip (розпаковуючи його)

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

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

cd [папка проекту]

pod install --no-repo-update


6

Спробуйте очистити кеш-пам'ять CocoaPods, перезавантажте та встановіть знову всі стручки, як описано тут

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

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

pod update

4

Як згадується в інших відповідях, це займає вічно, тому що розмір какаоподібних майстрів-репо величезний. Цей час можна скоротити, скориставшись наступними кроками.

1) Створіть шлях до файлу приватних специфікацій у вашому сховищі github. Надайте цей шлях https://github.com/yourpathForspecs.git 'як джерело у своєму підфілі.

2) ідентифікуйте ВСІ необхідні вам сховища та їх залежності (згадані у файлі podspec.json у кокаоподах для цих сховищ) та отримуйте їх файли podspec.json від cocoapods. додайте ці файли podspec.json у свою папку (скажімо, папка останньої версії для болтів) у цьому сховищі специфікацій.

3) видаліть джерело ' https://github.com/CocoaPods/Specs.git " у підфілі

4) оновлення стручка

Це займе значно менше часу, оскільки для цього потрібно отримати і завантажити лише стручки, які вам потрібні, а не цілі сховища какаоподів. У моєму випадку це скоротило час оновлення струменя з 15-20 хвилин в середньому до 3–4 хв.


1

Етапи встановлення Pod

Перший відкритий термінал:

chmod o-w /usr/local

sudo chmod o-w /usr/local

sudo gem install cocoapods

якщо у вашій системі вже встановлений стручок, виконайте наведені нижче дії

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

У мене була така ж проблема, я зрозумів, що все ще працюю Network Conditioner в "Дуже поганій мережі". Вимкнення цього рішення вирішило проблему.

Сподіваюся, що хтось допомагає.


1

Я вирішив це питання так:

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

Довідка: http://blog.cocoapods.org/Repairing-Our-Broken-Specs-Repository/


1
Моє pod setupприймало назавжди, і я зробив аборт через 30 хвилин. Я тільки дотримувався цієї процедури, і git cloneтепер закінчив приблизно через 5 хвилин.
neoneye




0

Рішення для мене в 11.2019

Привіт, я спробував багато речей, але нічого не вийшло. Спробуйте просто підключитися до цього веб- сайту https://cdn.cocoapods.org/, якщо ви не можете просто використовувати VPN і робити pod installі т.д. І не забудьте використовувати --verboseдля розуміння того, що відбувається.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.