La guía definitiva para instalar y actualizar pods

Gabrielle Earnshaw

Follow

Oct 9, 2018 – 5 min read

La diferencia entre pod install y pod update es sutil, y no siempre está claro cuál debes usar. Pero tener una buena comprensión de lo que hacen estos comandos te da un control mucho más fino sobre cómo se gestionan las dependencias en tu proyecto, por lo que vale la pena conocer la diferencia.

En la primera parte de este artículo te daré una lista de recetas que muestran si debes ejecutar pod install o pod update en algunas situaciones comunes. Luego, en la segunda parte, explicaré por qué los diferentes comandos hacen cosas diferentes, y cómo CocoaPods utiliza el archivo Podfile.lock para hacer que todo suceda.

Para que estas recetas funcionen, asegúrese de que Podfile y Podfile.lock estén comprometidos con el control de origen.

Está configurando CocoaPods en un proyecto por primera vez y ha creado su Podfile

pod install

Esto instalará la última versión* de cada uno de los pods que especificó en su nuevo Podfile. También creará un archivo MyProject.xcworkspace si no existe ya uno.

Ha añadido un nuevo pod a su Podfile

pod install

Esto instalará la última versión* de cualquier pods nuevo añadido a su Podfile, dejando sus otros pods sin cambios.

Si ejecutara pod update en su lugar, instalaría los nuevos pods y actualizaría cada uno de sus pods existentes a su última versión*.

Desea obtener la última versión de todos los pods en su Podfile

pod update

Esto irá a través de todos sus pods y se asegurará de que la última versión* de cada uno está instalada en su proyecto.

Desea obtener la última versión de un solo pod en su Podfile

pod update SomePod

Esto se asegurará de que se instala la última versión* del pod que especifique, dejando sus otros pods sin cambios.

Está trabajando con un pod de desarrollo y quiere obtener sus últimos cambios

pod update MyDevelopmentPod

Esto asegurará que se instale la última versión de su pod, dejando sus otros pods sin cambios.

Ha descargado el código fuente de un proyecto existente que utiliza CocoaPods

pod install

Esto instalará todos los pods en el Podfile en las versiones exactas que se instalaron previamente en este corte del código fuente.

Si ejecutara pod update en su lugar, instalaría la última versión* de cada uno de los pods en el Podfile. Esto podría impedir la construcción del proyecto si las últimas versiones no fueran compatibles con otro código del proyecto. Yo recomendaría ejecutar pod install para conseguir la construcción del código, y luego actualizar los pods según sea necesario de una manera controlada.

Está escribiendo un script para construir un proyecto en un servidor de construcción

pod install

Esto instalará todos los pods en el Podfile en las versiones exactas que se instalaron en la versión que se está construyendo. Esto es importante para una construcción estable, porque estas son las versiones contra las que se desarrolló el código, y significa que cada construcción de ese corte de código utilizará las mismas versiones de pods. Si se utiliza pod update en su lugar, su construcción podría potencialmente utilizar diferentes versiones de pods cada vez que se construye.

Xcode está informando de extraños errores de construcción relacionados con los pods

Esto ocurre ocasionalmente después de actualizar los pods, o después de cambiar entre las ramas de un proyecto que contienen los mismos pods en diferentes versiones.

Borra el directorio /Pods, y luego ejecute pod install

Esto reinstalará todos los pods en el Podfile en las versiones exactas que fueron instaladas previamente, y suele ser suficiente para enderezar cualquier problema que Xcode pueda encontrar.

A veces la gente sugiere borrar el directorio /Pods y el archivoPodfile.lock, y luego ejecutar pod install. Esto resolverá cualquier problema con Xcode, pero también actualizará cada uno de los pods del Podfile a su última versión*.

Parte 2: Cómo funciona

La diferencia entre pod install y pod update radica en cómo interactúan con el archivo Podfile.lock. Este archivo se utiliza para almacenar la versión exacta de cada pod que está actualmente instalado en su proyecto.

La forma más fácil de entender cómo funciona es mirar el siguiente diagrama (advertencia: se trata de un simple esquema más que de un diagrama técnico preciso).

Instalación de pods vs. actualización de pods

la actualización de pods

pod updateignora Podfile.lockcuando comprueba las versiones. Busca la última versión disponible* de un pod, y la instala si no está ya instalada.

pod install

pod install busca primero en Podfile.lock cuando busca versiones. Si una versión del pod está listada en Podfile.lock, instalará esa versión exacta. Si ese pod no está listado en Podfile.lock (o si Podfile.lock no existe todavía), se comportará como para pod update, es decir, encuentra la última versión disponible* y la instala.

En ambos casos, CocoaPods entonces actualiza Podfile.lock con cualquier nuevo número de versión que se haya instalado.

Esto es lo que le permite utilizar versiones de pods de forma consistente a través de diferentes instalaciones de un proyecto (i.e. cuando se instala desde un repositorio, a través de múltiples miembros del equipo, o en un servidor de compilación), y es por eso que Podfile.lock debe ser comprometido con el control de origen.

Resumen

En este artículo he dado recetas que muestran si se debe ejecutar pod install o pod update en una serie de situaciones comunes. Luego he descrito cómo y por qué los dos comandos funcionan de manera diferente. Si lo has encontrado útil, por favor da un aplauso y/o comparte, y sígueme para otros artículos útiles.

admin

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

lg