tl; dr use:
pod update podName
Czemu? Czytaj poniżej.
pod updateNIE uszanuje podfile.lock. Zastąpi to.
pod install uszanuje podfile.lock
Ten schemat pomaga lepiej zrozumieć różnice:

Główny problem pochodzi od ~>optymistycznego operatora .
Używanie dokładnych wersji w Podfilenie wystarczy
Niektórzy mogą pomyśleć, że podanie dokładnych wersji swoich strąków Podfile, na przykład pod 'A', '1.0.0', wystarczy, aby zagwarantować, że każdy użytkownik będzie miał tę samą wersję, co inni ludzie w zespole.
Wtedy mogą nawet użyć pod update, nawet po prostu dodając nowy zasobnik, myśląc, że nigdy nie zaryzykuje aktualizacji innych zasobników, ponieważ są one ustawione na określonej wersji w Podfile.
Ale w rzeczywistości to nie wystarczy, aby zagwarantować, że użytkownik 1 i użytkownik 2 w powyższym scenariuszu zawsze otrzymają dokładnie taką samą wersję wszystkich swoich kapsuł.
Jednym z typowych przykładów jest Azależność kapsuły od kapsuły A2- zadeklarowanej A.podspecjako dependency 'A2', '~> 3.0'. W takim przypadku użycie kapsuły 'A', '1.0.0'w pliku Podfile zmusi zarówno użytkownika1, jak i użytkownika2, do korzystania zawsze z wersji 1.0.0 kapsuły A, ale:
- użytkownik1 może skończyć z kapsułą
A2w wersji 3.4(ponieważ była A2to najnowsza wersja w tym czasie)
- podczas gdy użytkownik 2 uruchamia się
pod installprzy dołączaniu do projektu później, może dostać A2wersję w wersji 3.5(ponieważ opiekun A2mógł w międzyczasie wydać nową wersję). Dlatego jedynym sposobem, aby upewnić się, każdy członek zespołu pracy z tymi samymi wersjami wszystkich strąków na każdym znajduje się komputer jest użycie Podfile.locki właściwie wykorzystywać pod installw porównaniu pod update.
Powyższy fragment pochodzi z instalacji pod w porównaniu z aktualizacją pod
Ja również bardzo polecam oglądania co robi podfile.lockDO
podfile.lockjest. Zobacz link i film, do którego się odwołuje.