Gestión de dependencias en iOS con CococaPods
Al igual que Gradle en Android, para llevar adelante el manejo de dependencias en aplicaciones iOS, contamos con la herramienta CocoaPods.
Gracias a CocoaPods ya no es necesario, al momento de incorporar una librería a nuestro proyecto, tener que copiar a mano los archivos .h y .m, sino que simplemente agregando una linea al archivo correspondiente, la misma se integra.
Como agregar CocoaPods a un proyecto Xcode?
1) Instalar CocoaPods en nuestra pc. Para ello simplemente corremos el siguiente comando ruby en la consola:
sudo gem install cocoapods.
2) Vamos a la carpeta donde tengamos almacenado el proyecto, por ejemplo:
cd ~/develup/projects/MiProyecto
Una vez allí corremos el comando:
Entonces se creara en la carpeta de nuestro proyecto el archivo “Podfile”, en él podremos definir todas nuestras dependencias.
3) Abrimos el archivo Podfile con Xcode para poder editarlo, esto se realiza con el comando:
IMPORTANTE: El Podfile debe editarse con Xcode y no con TextEdit ya que algunas comillas pueden ser reemplazadas por otros caracteres y esto confunde a Cocoapods generando errores inesperados.
El Podfile generado por defecto debería lucir así:
# Uncomment this line to define a global platform for your project
Lo que hacemos es reemplazar el 6.0 por la versión de iOS que use nuestro proyecto.
4) Agregamos las dependencias al archivo Podfile
Cada libreria se agrega entre el do y el end. Ejemplo:
# Uncomment this line to define a global platform for your project
pod 'UIScrollView-InfiniteScroll'
También puede especificarse la versión de la librería a descargar, como por ejemplo:
pod ‘ObjectiveSugar’, ‘0.5’
5) Con la consola y parados en la carpeta del proyecto, corremos el comando:
6) Abrimos el proyecto desde el nuevo archivo generado MiProyecto.xcworkspace, buildeamos y listo! ya podemos usar las librerias que descargamos sin problemas.
MUY IMPORTANTE: A partir del momento en que se incorpora CocoaPods al proyecto, el mismo debe abrirse SIEMPRE desde el .xcworkspace y no desde el .xcodeproj
7) Deben versionarse todos los archivos generados por Cocoapods?
Aqui es a gusto de uno, pero es recomendable versionar todo ya que así las librerias o codigo bajado por CocoaPods va a estar siempre disponible, aunque se fuente ya no esté disponible. De esta forma, quien descarga el proyecto puede correrlo automáticamente sin necesidad de tener instalado CocoaPods o tener que ejecutar el comando pod install.