<RubyGems + Bundler
Für viele ist CocoaPods die erste Einführung in das Abhängigkeitsmanagement in Programmierprojekten. Viele Ideen für CocoaPods stammten aus ähnlichen Projekten (zum Beispiel RubyGems, Bundler, npm und Gradle).
Das Verständnis des Ruby-Abhängigkeitsmanagements ist nützlich, da Sie damit Versionen von CocoaPods oder anderen Edelsteinen angeben und sicherstellen können, dass alle Entwickler in Ihrem Team genau dieselbe Version haben. Dieser Leitfaden richtet sich an Personen, die Konsistenz in ihren Teamabhängigkeiten sicherstellen oder nicht veröffentlichte Versionen von CocoaPods verwenden möchten.
<RubyGems
RubyGems ist ein gehosteter Ruby-Bibliotheksdienst. Es zentralisiert, wo Sie nach einer Bibliothek suchen und Ruby-Bibliotheken / Apps installieren.Sie werden gem install xxx
gesehen haben. Diese werden in einer zentralen Versionsdatenbank installiert. Wenn Sie sich vorstellen, dass CocoaPodsinstalls alle Bibliotheken / Frameworks in einem Systemordner und sie zur Laufzeit verknüpft sind, dann haben Sie die grobe Idee, wie RubyGems alle Edelsteine hält.
Der Nachteil dabei ist, dass es keine Möglichkeit gibt, sicherzustellen, dass ein Projekt, das eine bestimmte Version einer Bibliothek benötigt, diese verwenden kann. Als Entwickler sollten Sie daher vorsichtig sein, eine neue Version einer Bibliothek zu installieren, da diese in jeder Bibliothek / App verwendet wird. Dies ist das Problem, das Bundler löst.
<Bundler
Bundler erstellt eine konsistente Anwendungsumgebung für Ihre Anwendung, indem Sie die Version von Bibliotheken angeben können.Wir haben diese Idee fast vollständig für CocoaPods übernommen. Sie definieren eine Gemfile , die angibt, welche Bibliotheken Sie einschließen möchten, und können optional eine Version oder einen Bereich angeben. Sie führen bundle install
aus und es wird eine Gemfile generiert.sperren Sie die genaue Version aller Ihrer Bibliotheken und dann erhält jeder andere, der bundle install
mit diesem Projekt ausführt, genau die gleichen Versionen.
<Was ist ein Gemfile?
Wenn Sie die Anleitung zum Podfile gelesen haben, wird es sich sehr ähnlich anfühlen. Eine Gemfile ist eine Ruby-Datei, die Ihre rubydependencies definiert. Hier ist ein vorhandenes aus einem Cocoa-Projekt.