< RubyGems + Bundler
dla wielu CocoaPods jest pierwszym wprowadzeniem do zarządzania zależnościami w projektach programistycznych. Wiele pomysłów dla Cocoapodów pochodziło z podobnych projektów (na przykład RubyGems, Bundler, npm i Gradle).
zrozumienie zarządzania zależnościami w Ruby jest przydatne, ponieważ pozwala na określenie wersji CocoaPods lub innych klejnotów i upewnienie się, że wszyscy programiści w Twoim zespole mają dokładnie tę samą wersję. Ten przewodnik jest przeznaczony dla osób, które chcą zapewnić spójność w swoich zależnościach zespołowych lub używać nieopublikowanych wersji CocoaPods.
< RubyGems
RubyGems jest hostowaną usługą biblioteki ruby. Centralizuje miejsce, w którym szukasz biblioteki i instaluje biblioteki / aplikacje ruby.Zobaczysz gem install xxx
Są one instalowane w centralnej bazie danych wersji. Jeśli wyobrażasz sobie, że CocoaPods instaluje wszystkie biblioteki/frameworki do folderu systemowego i są one połączone w czasie wykonywania, to masz szorstki pomysł na to, jak RubyGems przechowuje wszystkie klejnoty.
minusem jest to,że nie ma sposobu, aby zapewnić, że projekt wymagający konkretnej wersji biblioteki może z niej korzystać, zawsze będzie używał najnowszej wersji. Jako programista będziesz ostrożny instalując nową wersję biblioteki, ponieważ będzie ona używana w każdej bibliotece / aplikacji. To jest problem, który rozwiązuje bundler.
<Bundler
Bundler tworzy spójne środowisko aplikacji, umożliwiając określenie wersji bibliotek.Wzięliśmy ten pomysł prawie w całości-sprzedaż dla CocoaPods. Definiujesz plik Gemfile, który mówi, jakie biblioteki chcesz dołączyć, i opcjonalnie możesz określić wersję lub zakres. Uruchamiasz bundle install
i wygenerujesz plik Gemfile.lock mówi dokładną wersję wszystkich Twoich bibliotek, a następnie każdy, kto działa bundle install
z tym projektem, dostaje dokładnie te same wersje.
< co to jest Gemfile?
jeśli przeczytałeś przewodnik na Podfile, poczujesz się bardzo podobnie. Gemfile to plik ruby, który definiuje Twoje zależności Ruby. Oto istniejący z projektu Cocoa.