Я понимаю , что следующая команда будет обновляться один стручок: pod update <podname>
. Однако это также обновляет зависимости других модулей (модулей, которые не были включены в команду обновления), которые вы ранее установили. Есть ли способ обновить один модуль и оставить все остальные зависимости в покое?
202
podfile.lock
такое. Смотрите ссылку и видео, на которое она ссылается.Ответы:
Убедитесь, что у вас установлена последняя версия CocoaPods.
$ pod update POD
был представлен недавно.Смотрите эту тему для получения дополнительной информации :
источник
$ pod update SomePodName
. Тем не менее, в некоторых случаях CocoaPods также пытается обновить зависимости других модулей. Короче говоря, SomePodName - не единственный модуль, который обновляется в некоторых случаях.pod install
ее, она возвращается к исходной версии. Но я не хочу терять свои измененияpod update
касается всего Он не делает то, что говорит на банке, и это очень расстраивает. Случайно удаляет заголовки из других модулей, к которым вы не прикасались, и т. Д.Чтобы установить один модуль без обновления существующих -> Добавьте этот модуль в свой Podfile и используйте:
Чтобы удалить / обновить конкретный модуль, используйте:
Проверено!
источник
Это 2015
Поэтому, поскольку
pod update SomePod
затрагивает все в последних версиях Cocoapods, я нашел обходной путь.Выполните следующие шаги:
Удалить
SomePod
изPodfile
Бегать
pod install
стручки теперь будут удалены
SomePod
из нашего проекта и изPodfile.lock
файла.Положить обратно
SomePod
вPodfile
Запустить
pod install
сноваНа этот раз будет установлена и сохранена последняя версия нашего модуля
Podfile.lock
.источник
pod update somepod anotherpod thirdpod
можете обновить несколько модулей одновременно :)SomePod
обновляется ли до последних зависимостей, не будет ли обновляться общая зависимостьanotherPod
до последней? Разве это не произойдет независимо от того, что находится в подлок? В противном случае он не сможет удовлетворить требованияSomePod
просто говорю:
pod install
- для установки новых контейнеров,pod update
- для обновления существующих модулей,pod update podName
- для обновления только определенных модулей, не касаясь других модулей,pod update podName versionNum
- для обновления / СКАЧИВАНИЯ определенного модуля, не касаясь других модулейисточник
pod
вместоgit
?Просто небольшое уведомление.
будет работать, только если этот модуль уже был установлен. В противном случае вам придется обновить их все
команда
источник
pod install
сначала, что позволит установить только недостающий (ые), не касаясь остальных. Хотя нет смысла обновлять модуль, который вы не установили, не так ли?TL; Dr использовать:
Зачем? Читай ниже.
pod update
НЕ будет уважатьpodfile.lock
. Это переопределит это.pod install
будет уважатьpodfile.lock
Эта диаграмма помогает лучше понять различия:
Основная проблема исходит от
~>
ака оптимистического оператора .Использование точных версий в
Podfile
недостаточноНекоторые могут подумать, что указание точных версий своих модулей в их
Podfile
, напримерpod 'A', '1.0.0'
, достаточно, чтобы гарантировать, что у каждого пользователя будет та же версия, что и у других людей в команде.Тогда они могут даже использовать
pod update
, даже просто добавляя новый модуль, думая, что никогда не рискнет обновить другие модули, потому что они привязаны к определенной версии вPodfile
.Но на самом деле этого недостаточно, чтобы гарантировать, что user1 и user2 в нашем вышеупомянутом сценарии всегда получат одинаковую версию всех своих модулей.
Один типичный пример - если у модуля
A
есть зависимость от модуля,A2
объявленногоA.podspec
какdependency 'A2', '~> 3.0'
. В таком случае использование pod'A', '1.0.0'
в вашем Podfile действительно заставит user1 и user2 всегда использовать версию 1.0.0 pod A, но:A2
в версии3.4
(потому что это былаA2
последняя версия на тот момент)pod install
при присоединении к проекту позже, они могут получить podA2
в версии3.5
(потому что сопровождающийA2
может выпустить новую версию за это время). Вот почему единственный способ обеспечить, чтобы каждый член команды работал с одинаковыми версиями всех модулей на каждом компьютере, - это использоватьPodfile.lock
и правильно использоватьpod install
иpod update
.Вышеприведенный отрывок был взят из установки pod или обновления pod
Я также настоятельно рекомендую смотреть , что делает
podfile.lock
Doисточник
Я использую
cocoapods version 1.0.1
и используюpod update name-of-pod
работает отлично. Никакие другие модули не обновляются, только конкретная, которую вы вводите.источник
Это немного выделяется и вряд ли будет тем, с чем имел дело OP, но
pod update <podname>
не будет работать во всех случаях, если вы используете локальный модуль на вашем компьютере.В этой ситуации единственное, что сработает,
pod update
- это изменение файла podspec. Однако внесение изменений также позволитpod install
работать.В этой ситуации вы можете просто изменить что-то второстепенное, например, описание или сводку, на одну букву, а затем успешно выполнить команду установки или обновления.
источник