< RubyGems + Bundler
Para muchos, CocoaPods es la primera introducción a la gestión de dependencias en proyectos de programación. Muchas ideas para CocoaPods provienen de proyectos similares ( por ejemplo, RubyGems, Bundler, npm y Gradle).
Comprender la administración de dependencias de Ruby es útil porque le permite especificar versiones de CocoaPods u otras gemas y garantizar que todos los desarrolladores de su equipo tengan exactamente la misma versión. Esta guía es para personas que buscan garantizar la coherencia en sus dependencias de equipo o para usar versiones no lanzadas de CocoaPods.
< RubyGems
RubyGems es un servicio de biblioteca de ruby alojado. Centraliza dónde busca una biblioteca e instala bibliotecas / aplicaciones de ruby.Habrás visto gem install xxx
. Estos se instalan en una base de datos central de versiones. Si imagina que Cocoapod instala todas las bibliotecas / frameworks en una carpeta del sistema y están vinculadas en tiempo de ejecución, entonces tiene la idea aproximada de cómo RubyGems mantiene todas las gemas.
La desventaja de esto es que no hay manera de garantizar que un proyecto que necesita una versión específica de una biblioteca puede utilizar,siempre usar la versión más reciente. Por lo tanto, como desarrollador, sería cauteloso al instalar una nueva versión de una biblioteca, ya que se usaría en todas las bibliotecas / aplicaciones. Este es el problema que Bundler resuelve.
< Bundler
Bundler crea un entorno de aplicación coherente para su aplicación, al permitirle especificar la versión de las bibliotecas.Tomamos esta idea casi en venta para CocoaPods. Usted define un Gemfile que indica qué bibliotecas desea incluir, y puede especificar opcionalmente una versión o rango. Ejecuta bundle install
y generará un Gemfile.bloquear diciendo la versión exacta de todas tus bibliotecas y luego cualquier otra persona que ejecute bundle install
con ese proyecto obtiene exactamente las mismas versiones.
< ¿Qué es un Gemfile?
Si ha leído la guía en el Podfile, se sentirá muy similar. Un Gemfile es un archivo ruby que define sus dependencias de rubid. Aquí hay uno existente de un proyecto de Cacao.