Помилка при встановленні pod


95

У мене є робочий проект, який використовує файл pod вже кілька тижнів. Коли я дізнався, що деякі мої стручки мають оновлення, я спробував `` встановити стручок '' на цю дивну помилку

    Analyzing dependencies
    [!] Pod::Executable pull

    Updating 1337455..e9f6e93
    error: The following untracked working tree files would be overwritten by merge:

AeroGear-Push/0.7.0/AeroGear-Push.podspec

AeroGear/1.2.0/AeroGear.podspec

BrynKit/1.3.0/BrynKit.podspec

BrynKit/1.3.1/BrynKit.podspec

CSURITemplate/0.3/CSURITemplate.podspec

EXiLE/1.0.2/EXiLE.podspec

FlurrySDK/4.2.3/FlurrySDK.podspec

FoundationExtension/0.39.1/FoundationExtension.podspec

FoundationExtension/0.39/FoundationExtension.podspec

GCDObjects/0.0.1/GCDObjects.podspec

HTAutocompleteTextField/1.2.1/HTAutocompleteTextField.podspec

HTAutocompleteTextField/1.2.2/HTAutocompleteTextField.podspec

HTAutocompleteTextField/1.2/HTAutocompleteTextField.podspec

IDMPhotoBrowser/1.1.2/IDMPhotoBrowser.podspec

Igor/0.5.0/Igor.podspec

KFOpenWeatherMapAPI/0.2.0/KFOpenWeatherMapAPI.podspec

NGSegmentedViewController/0.1.1/NGSegmentedViewController.podspec

PPiFlatSegmentedControl/1.3/PPiFlatSegmentedControl.podspec

PiwikTracker/2.0.0/PiwikTracker.podspec

SDWebImage/3.4/SDWebImage.podspec

libwbxml/0.11.2/libwbxml.podspec

wbxml/0.0.1/wbxml.podspec

    Please move or remove them before you can merge.

    Aborting

в іншому дописі пропонувалося використовувати командний рядок 'rm -rf ~ / .cocoapods', але це призвело до того, що мої cocoapods перестали працювати разом для всіх проектів зараз, коли-небудь проект, який я намагаюся `` встановити під '', я отримую повідомлення `` Не вдається знайти специфікацію для .. 'помилка

[!] Не вдається знайти специфікацію для CorePlot (= 1.3).


У мене виникла ця проблема після того, як я возився і видалив каталог фреймворку під цим Pods/каталогом.
eremzeit

Відповіді:


234

Якщо ви приземлилися тут 30 січня 2014 року або пізніше, у CocoaPods це перерва. Будь ласка, прочитайте відповідне повідомлення в блозі, яке знайдено тут: http://blog.cocoapods.org/Repairing-Our-Broken-Specs-Repository/

або зробити:

pod repo remove master
pod setup

1
Ого, це ціла помилка. Радий, що знайшов це лише трохи погугливши.
Свільямс

1
Це виправляє проблему зі зламаною специфікацією стручка, але майте на увазі, що вам може знадобитися перевстановити ваше репо: re репо: додайте ваш repo.git
rmooney

2
@AriBraginsky Кайл Фуллер відповідає на подібні запитання у твіттері, можливо, це допоможе вам: twitter.com/kylefuller/status/429204211478564865
Марк Едінгтон,

1
@AriBraginsky, у мене була така сама помилка при використанні 0.2.5. Оновлення до 0.2.9 має виправити це.
dloomb 02

1
Це вимагає хороших 700 Мб даних станом на 19 грудня 2019 року. Робіть це лише тоді, коли у вас є час і хороша швидкість Інтернету.
iphondroid

104

вирішив це самостійно, фокус полягав у використанні $sudo rm -rf ~/.cocoapodsдля очищення майстер-репо кокаподів, а потім pod installпрацював без проблем.

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


Дякую, дякую, дякую! У мене був головний біль із помилками, подібними до вашої. Зараз все працює нормально!
Неру

5
Не потрібно sudoцього робити.
Пітер Йонгсма

Ти врятував мій день !! Я все пробував. Це вдалося. Дякую. @matan poreh
user1899840

18

Однорядкова команда на 100% без роботи - це:

sudo rm -rf ~/.cocoapods && pod setup && pod install

Я створив випуск на GitHub traker: # 2185

І офіційна відповідь:

Цю проблему вже вирішив @irrationalfab за допомогою коміту CocoaPods / CLAide @ 5e023ab. Тож виправлення має бути доступне в наступному випуску CocoaPods. Просто будь терплячим


16

Якщо вам потрібне чисте репозиторій майстер-специфікації, ви можете спробувати

cd ~/.cocoapods/master
git reset --hard

або якщо ви користуєтеся CocoaPods 0.23+, використовуйте ~/.cocoapods/repos/master.


Це не зовсім працювало для мене. Я не впевнений, як субрепо для кожного проекту встановлюються cocoapods, але просто виклик git reset --hardкореневого репо не скинув зміни, внесені до одного з дочірніх репо. У підсумку я просто видалив .cocoapodsкаталог і почав спочатку , хоча не кожен міг би це зробити.
eremzeit

@eremzeit що ви маєте на увазі під репозиторіями дітей?
Адам Шарп,

Це може також допомогти вам: (1) git fetch origin(2) git clean -f(3)git reset --hard origin/master
Шикі

8

Вам доведеться вручну видалити будь-які локальні копії сховища специфікацій і повторно клонувати нову версію сховища специфікацій. Це можна зробити за допомогою таких команд: $ sudo rm -fr ~/.cocoapods/repos/master $ pod setup


6

коли мої проекти стають великими, і у мене є великий файл pod, я досить часто стикаюся з цією проблемою.

Моє рішення таке:

pod repo remove master
pod setup
pod install

2
Мабуть, голос проти тому, що це копія відповіді Марка Едінгтона.
пар.

2

Потрібно виправити дозволи та власника файлів

$ sudo chown -R user ~/Library/Caches/CocoaPods
$ sudo chown -R user ./Pods
$ sudo chown -R user ./Podfile.lock
$ sudo chmod -R 777 ./Pods

$ pod update/setup

1
Так! Ось, що мені потрібно! Будь-які інші методи допомагають лише для одного разу "встановлення стручка: операція. Зараз все працює чудово, дякую!
skywinder

2

Ого, це було справжнім болем, і, схоже, у кожного є різне рішення. Для мене це рішення кілька разів працювало на декількох машинах / середовищах:

Очевидно, є помилка, psychяка спричиняє проблему.

sudo gem uninstall psych
sudo gem install psych -v 2.0.0

На репозиторії CococaPods тривала розмова про проблему та це виправлення.


0

Просто, щоб поділитися власним виправленням цієї проблеми:

Оскільки це проблема git, ви можете використовувати прості команди git для її вирішення (див. Допис @ AdamSharp). Що працювало для мене, це біг

git clean -d -f

в ~/.cocoapods/repos/master. Це рекурсивно видаляє всі відстежувані файли та каталоги з репозиторію. Я закликаю вас бігти:

git clean -d -f --dry-run

Перш ніж виконувати щось, ви зможете побачити, що це може зробити. Якщо це зламає ваш основний репозитарій CocoaPods, просто видаліть ~/.cocoapods/repos/masterі запустіть pod repo update.


0

Ви можете спробувати так. pod spec lint --sources = ' https://git.oschina.net/yourname/jqcpodspec,https://github.com/CocoaPods/Specs ' --allow-warnings --use-libraries

якщо ваша специфікація проходить перевірку, тоді під репо натисніть push JQCPodSpec FMCommonModelLib.podspec --sources = ' https://git.oschina.net/yourname/jqcpodspec,https://github.com/CocoaPods/Specs ' --allow-warnings --use-бібліотеки

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