Ostateczny przewodnik po instalowaniu i aktualizowaniu strąków

Gabrielle Earnshaw

Follow

Oct 9, 2018 – 5 min read

Różnica między pod install i pod update jest subtelna i nie zawsze jest jasne, którego powinieneś użyć. Jednak dobre zrozumienie, co te polecenia robią, daje dużo większą kontrolę nad tym, jak zarządzane są zależności w projekcie, więc warto je znać.

W pierwszej części tego artykułu przedstawię listę receptur pokazujących, czy powinieneś uruchomić pod install czy pod update w niektórych typowych sytuacjach. Następnie w drugiej części wyjaśnię, dlaczego różne polecenia robią różne rzeczy i jak CocoaPods używa pliku Podfile.lock, aby to wszystko zrealizować.

Aby te przepisy działały, upewnij się, że Podfile i Podfile.lock są zaangażowane w kontrolę źródła.

Ustawiasz CocoaPods w projekcie po raz pierwszy i utworzyłeś swój plik Podfile

pod install

To zainstaluje najnowszą wersję* każdego z strąków, które określiłeś w swoim nowym pliku Podfile. Utworzy także plik MyProject.xcworkspace, jeśli taki jeszcze nie istnieje.

Dodałeś nowy strąk do swojego pliku Podfile

pod install

To zainstaluje najnowszą wersję* każdego nowego strąka dodanego do twojego pliku Podfile, pozostawiając inne strąki bez zmian.

Jeśli zamiast tego uruchomisz pod update, zainstaluje on nowe strąki i zaktualizuje każdy z istniejących strąków do jego najnowszej wersji*.

Chcesz uzyskać najnowszą wersję wszystkich strąków w twoim pliku Podfile

pod update

To przejdzie przez wszystkie strąki i upewni się, że najnowsza wersja* każdego z nich jest zainstalowana w twoim projekcie.

Chcesz uzyskać najnowszą wersję tylko jednego strąka w swoim pliku Podfile

pod update SomePod

To upewni się, że zainstalowana jest najnowsza wersja* strąka, który określisz, pozostawiając inne strąki bez zmian.

Pracujesz z deweloperskim strąkiem i chcesz uzyskać najnowsze zmiany

pod update MyDevelopmentPod

To sprawi, że zostanie zainstalowana najnowsza wersja twojego strąka, pozostawiając inne strąki bez zmian.

Pobrałeś źródło dla istniejącego projektu, który używa CocoaPods

pod install

To zainstaluje wszystkie strąki w pliku Podfile dokładnie w wersjach, które zostały wcześniej zainstalowane w tym wycinku kodu źródłowego.

Gdybyś zamiast tego uruchomił pod update, zainstalowałoby ono najnowszą wersję* każdego ze strąków w pliku Podfile. To mogłoby uniemożliwić budowanie projektu, jeśli najnowsze wersje nie byłyby kompatybilne z innym kodem w projekcie. Zalecałbym uruchomienie pod install, aby kod został zbudowany, a następnie aktualizację strąków w razie potrzeby w kontrolowany sposób.

Piszesz skrypt, aby zbudować projekt na serwerze budowania

pod install

To zainstaluje wszystkie strąki w pliku Podfile dokładnie w wersjach, które zostały zainstalowane w budowanej wersji. Jest to ważne dla stabilnej kompilacji, ponieważ są to wersje, przeciwko którym kod został stworzony, a to oznacza, że każda kompilacja tego fragmentu kodu będzie używać tych samych wersji strąków. Jeśli użyłbyś pod update zamiast tego, twój build mógłby potencjalnie używać różnych wersji strąków za każdym razem, gdy się buduje.

Xcode zgłasza dziwne błędy związane z budową strąków

Czasami zdarza się to po aktualizacji strąków lub po przełączeniu się między gałęziami projektu, które zawierają te same strąki w różnych wersjach.

Usuń katalog /Pods, a następnie uruchom pod install

To spowoduje ponowną instalację wszystkich strąków w pliku Podfile dokładnie w wersjach, które były wcześniej zainstalowane, i zwykle wystarcza do wyprostowania wszelkich problemów, z którymi Xcode może się spotkać.

Czasami ludzie sugerują usunięcie katalogu /Pods i plikuPodfile.lock, a następnie uruchomienie pod install. To rozwiąże wszelkie problemy z Xcode, ale także zaktualizuje każdy z strąków w pliku Podfile do jego najnowszej wersji*.

Część 2: Jak to działa

Różnica między pod install a pod update polega na tym, jak współdziałają one z plikiem Podfile.lock. Ten plik jest używany do przechowywania dokładnej wersji każdego strąka, który jest obecnie zainstalowany w twoim projekcie.

Najprostszym sposobem zrozumienia, jak to działa, jest spojrzenie na następujący diagram (zastrzeżenie: jest to prosty schemat, a nie dokładny diagram techniczny).

Pod install vs. pod update

pod update

pod update ignoruje Podfile.lock podczas sprawdzania wersji. Szuka najnowszej dostępnej wersji* strąka i instaluje ją, jeśli nie jest jeszcze zainstalowana.

pod install

pod installsprawdza najpierw Podfile.lock podczas sprawdzania wersji. Jeśli wersja strąka jest wymieniona w Podfile.lock, zainstaluje dokładnie tę wersję. Jeśli ten strąk nie jest wymieniony w Podfile.lock (lub jeśli Podfile.lock jeszcze nie istnieje), zachowa się jak dla pod update, tj. Znajdzie najnowszą dostępną wersję* i zainstaluje ją.

W obu przypadkach CocoaPods następnie aktualizuje Podfile.lock z wszelkimi nowymi numerami wersji, które zostały zainstalowane.

To właśnie pozwala używać wersji strąków konsekwentnie w różnych instalacjach projektu (tj.e. podczas instalacji z repozytorium, przez wielu członków zespołu lub na serwerze kompilacji), i dlatego Podfile.lock powinien być przekazany do kontroli źródła.

Podsumowanie

W tym artykule podałem przepisy pokazujące, czy uruchomić pod install czy pod update w wielu typowych sytuacjach. Następnie opisałem, jak i dlaczego te dwie komendy działają w różny sposób. Jeśli znalazłeś to użyteczne, proszę daj temu klapsa i / lub udostępnij, i śledź mnie dla innych użytecznych artykułów.

admin

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.

lg