'pod install' не обновляет существующий pod

Я пытаюсь обновить свой модуль с помощью pod install и обнаруживаю, что он не обновляется должным образом, пока я не удалю исходный модуль.

Требуется ли какой-то дополнительный шаг или есть распространенная ошибка, которая приводит к сбою обновлений?


person Joey    schedule 24.07.2012    source источник
comment
Какую полную команду вы пытаетесь запустить? Какой результат вы получаете от этого?   -  person Peter Hosey    schedule 25.07.2012


Ответы (4)


Я не уверен, из какой версии, но если вы обновите установку Cocopods до последней версии, вы найдете две новые команды, которые помогут в этом.

pod outdated

В нем будут перечислены все модули, для которых доступны обновления.

pod update

Это обновит модули, перечисленные в предыдущей команде.

person Edward Huynh    schedule 16.10.2012
comment
обновить установку Cocopods Как: [sudo] gem обновить Cocopods - person zaph; 05.04.2013
comment
Это решило это для меня. @EdwardHuynh, комментарий Зафа необходим, поскольку не все из нас, кто использует Cocoapods, знакомы с Ruby. - person Chris; 27.03.2014
comment
pod update не обновляет модули до последней версии постоянно. Это зависит от того, как вы объявите зависимость в podfile. - person xi.lin; 28.01.2016

Вы можете добавить подробный тег и посмотреть, не возникает ли ошибка во время обновления.

pod install --verbose

Использование --verbose — лучший способ узнать, что происходит. Возможно, есть проблема с репозиторием, из которого он пытается обновиться. Тяжело сказать.

person Bill Burgess    schedule 27.08.2012
comment
У меня такая же проблема. Добавление подробного переключателя не дало никаких подсказок, почему модуль не обновлялся. - person Klaas; 07.09.2012
comment
Может быть, @alloy может взглянуть на это и предложить некоторую помощь. Я заметил, что модули не всегда удаляются или обновляются при запуске установки модуля. - person Bill Burgess; 10.09.2012

Я думаю, что читатель этого вопроса должен понимать разницу между

установка модуля и обновление модуля

Многие люди, начиная с CocoaPods, кажется, думают, что pod install используется только при первой настройке проекта с использованием CocoaPods, а pod update используется впоследствии. Но это совсем не так.

  • Используйте pod install для установки новых модулей в вашем проекте. Даже если у вас уже есть Podfile и вы уже запускали pod install; поэтому, даже если вы просто добавляете/удаляете модули в проект, уже использующий CocoaPods.
  • Используйте pod update [PODNAME] только в том случае, если вы хотите обновить конкретный модуль до более новой версии.
  • Используйте pod update только в том случае, если вы хотите обновить каждый модуль до более новой доступной версии.

Каждый раз, когда запускается команда pod install и загружает и устанавливает новые модули, она записывает установленную версию для каждого модуля в файл Podfile.lock. Этот файл отслеживает установленную версию каждого модуля и блокирует эти версии. Когда вы запускаете pod install, он разрешает зависимости только для модулей, которые еще не перечислены в файле Podfile.lock. Для модулей, перечисленных в Podfile.lock, он загружает явную версию, указанную в Podfile.lock, не пытаясь проверить, доступна ли более новая версия. Для модулей, еще не перечисленных в Podfile.lock, он ищет версию, которая соответствует тому, что описано в подфайле (например, в pod 'MyPod', '~>1.2')

person Aamir    schedule 06.07.2016

Если ваш проект настроен правильно, вы сможете удалить весь каталог Pods и запустить pod install. Я считаю, что иногда это лучшее решение, когда возникают проблемы с неправильной установкой модулей.

Примечание. Если вы начинаете получать подобные ошибки при сборке:

diff: /../Podfile.lock: No such file or directory
diff: /Manifest.lock: No such file or directory
error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.

... вам может потребоваться закрыть и снова открыть проект в Xcode.

Предупреждение: перед удалением каталога Pods убедитесь, что все файлы в вашем каталоге Pods будут воссозданы. (То есть убедитесь, что вы вручную не изменяли и не добавляли файлы в каталог Pods.)

person Senseful    schedule 15.03.2014