tl; dr uso:
pod update podName
¿Por qué? Lee abajo.
pod update
NO respetará el podfile.lock
. Lo anulará.
pod install
respetará el podfile.lock
Este diagrama ayuda a comprender mejor las diferencias:
El principal problema proviene del ~>
operador optimista aka .
Usar versiones exactas en el Podfile
no es suficiente
Algunos podrían pensar que al especificar versiones exactas de sus vainas en su Podfile
, comopod 'A', '1.0.0'
, es suficiente para garantizar que cada usuario tendrá la misma versión que otras personas en el equipo.
Luego, incluso podrían usar pod update
, incluso cuando solo agreguen un nuevo pod, pensando que nunca se arriesgaría a actualizar otros pod porque están fijados a una versión específica en el Podfile
.
Pero, de hecho, eso no es suficiente para garantizar que user1 y user2 en nuestro escenario anterior siempre obtengan exactamente la misma versión de todos sus pods.
Un ejemplo típico es si el pod A
tiene una dependencia en el pod A2
, declarado A.podspec
como dependency 'A2', '~> 3.0'
. En tal caso, el uso de pod 'A', '1.0.0'
en su Podfile obligará al usuario1 y al usuario2 a usar siempre la versión 1.0.0 del pod A, pero:
- user1 podría terminar con pod
A2
en la versión 3.4
(porque eso eraA2
la última versión en ese momento)
- mientras que cuando user2 se ejecuta
pod install
al unirse al proyecto más tarde, es posible que obtengan pod A2
en la versión 3.5
(porque el responsable del mantenimiento A2
podría haber lanzado una nueva versión mientras tanto). Es por eso que la única manera de asegurar que cada miembro del equipo de trabajo con las mismas versiones de toda la vaina en cada una de la computadora es utilizar el Podfile.lock
y utilizar adecuadamente pod install
frente pod update
.
El extracto anterior se deriva todo de instalación pod versus la actualización del pod
También recomiendo ver lo que hace un podfile.lock
Do
podfile.lock
es un . Vea el enlace y el video al que hace referencia.