Ошибка при установке пакета

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

[!] Не удалось найти спецификацию для 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
Вау, это настоящая ошибка. Рад, что нашел это, немного погуглил.
swilliams
1
Это устраняет проблему со сломанной спецификацией модуля, но имейте в виду, что вам может потребоваться переустановить репо: pod repo add yourrepo.git
rmooney
2
@AriBraginsky Кайл Фуллер отвечает на подобные вопросы в твиттере, возможно, это вам поможет: twitter.com/kylefuller/status/429204211478564865
Марк Эдингтон
1
@AriBraginsky, у меня такая же ошибка была при использовании 0.2.5. Обновление до 0.2.9 должно исправить это.
dloomb
1
По состоянию на 19 декабря 2019 года для этого требуется 700 МБ данных. Делайте это только тогда, когда у вас есть время и хорошая скорость Интернета.
iphondroid
104

решил это самостоятельно, трюк состоял в том, чтобы использовать $sudo rm -rf ~/.cocoapodsдля очистки главного репозитория cocoapods, а затем pod installработал без каких-либо проблем.

надеюсь, что это поможет другим людям, столкнувшимся с этой проблемой

Матан Поре
источник
Спасибо Спасибо спасибо! У меня болела голова от ошибок, похожих на твою. Теперь все работает нормально!
Неру
5
Нет необходимости sudoв этом.
Питер Йонгсма,
Ты спас мне день !! Все перепробовала. Это сработало. Спасибо. @matan poreh
user1899840
18

100% -ная однострочная команда:

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

Я создал проблему на трекере GitHub: # 2185

И официальный ответ:

Это проблема, которая уже была исправлена ​​@irrationalfab с помощью коммита CocoaPods / CLAide @ 5e023ab. Поэтому исправление должно быть доступно в следующем выпуске CocoaPods. Просто будьте терпеливы

Skywinder
источник
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

Вам придется вручную удалить все локальные копии репозитория Specs и повторно клонировать новую версию репозитория Specs. Вы можете сделать это с помощью следующих команд: $ sudo rm -fr ~/.cocoapods/repos/master $ pod setup

joserock85
источник
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
Да! Это то что мне нужно! Любые другие методы помогают только на один раз "pod install: operation. Прямо сейчас все работает отлично, спасибо!"
skywinder
2

Ничего себе, это было настоящей болью, и у всех, кажется, есть свое решение. Для меня это решение несколько раз работало на нескольких машинах / средах:

По-видимому, есть ошибка, psychкоторая вызывает проблему.

sudo gem uninstall psych
sudo gem install psych -v 2.0.0

В репозитории CococaPods идет продолжительный разговор об этой проблеме и об этом исправлении.

LunaCodeДевочка
источник
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-библиотеки

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

Appbanana
источник