Подтвердить что ты не робот

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

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

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

4b9b3361

Ответ 1

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

pod outdated

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

pod update

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

Ответ 2

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

pod install --verbose

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

Ответ 3

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

pod install vs. pod update

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

  • Используйте pod install для установки новых модулей в вашем проекте. Даже если у вас уже есть подфайл и пробег 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')

Ответ 4

Если ваш проект настроен правильно, вы сможете удалить весь каталог 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. (1. Убедитесь, что вы не вручную изменяли или добавляли файлы в каталог Pods.)