Yo entiendo que el siguiente comando se actualizará una sola vaina: pod update <podname>
. Sin embargo, esto también actualiza las dependencias de otros pods (pods que no se incluyeron en el comando de actualización) que haya instalado previamente. ¿Hay alguna manera de actualizar un solo pod y dejar todas las demás dependencias en paz?
202
podfile.lock
es un . Vea el enlace y el video al que hace referencia.Respuestas:
Asegúrese de tener instalada la última versión de CocoaPods.
$ pod update POD
fue introducido recientemente.Consulte este hilo de problemas para obtener más información :
fuente
$ pod update SomePodName
. Sin embargo, hay algunos casos en los que CocoaPods también intentará actualizar las dependencias de otros pods. En pocas palabras, SomePodName no es el único pod que se actualizará en algunos casos.pod install
vuelve a su versión original. Pero no quiero perder mis cambiospod update
toca todo No hace lo que dice en la lata, y es muy frustrante. Elimina aleatoriamente los encabezados de otros pods que no le has dicho que toque, etc.Para instalar un solo pod sin actualizar los existentes-> Agregue ese pod a su Podfile y use:
Para eliminar / actualizar un pod específico use:
Probado
fuente
Es 2015
Entonces, debido a que
pod update SomePod
toca todo en las últimas versiones de cocoapods, encontré una solución.Sigue los siguientes pasos:
Eliminar
SomePod
de laPodfile
correr
pod install
Las vainas ahora se eliminarán
SomePod
de nuestro proyecto y delPodfile.lock
archivo.Poner de nuevo
SomePod
en elPodfile
Corre de
pod install
nuevoEsta vez, la última versión de nuestro pod se instalará y guardará en
Podfile.lock
.fuente
pod update somepod anotherpod thirdpod
para actualizar múltiples pods a la vez :)SomePod
se actualiza a sus últimas dependencias, ¿no actualizaría una dependencia compartida deanotherPod
la última? ¿No ocurrirá eso independientemente de lo que haya en el podlock? De lo contrario, no podrá cumplir con los requisitos deSomePod
solo digo:
pod install
- para instalar nuevas vainas,pod update
- para actualizar pods existentes,pod update podName
- para actualizar solo un pod específico sin tocar otros pods,pod update podName versionNum
- para actualizar / DESCARGAR un pod específico sin tocar otros podsfuente
pod
lugar degit
?Solo un pequeño aviso.
funcionará solo si este pod ya estaba instalado. De lo contrario, deberá actualizarlos todos con
mando
fuente
pod install
primero, que instalará solo los que faltan, sin tocar los otros. Aunque no existe un caso de uso para querer actualizar un pod que no ha instalado, ¿no es así?tl; dr uso:
¿Por qué? Lee abajo.
pod update
NO respetará elpodfile.lock
. Lo anulará.pod install
respetará elpodfile.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 suficienteAlgunos 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 elPodfile
.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 podA2
, declaradoA.podspec
comodependency '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:A2
en la versión3.4
(porque eso eraA2
la última versión en ese momento)pod install
al unirse al proyecto más tarde, es posible que obtengan podA2
en la versión3.5
(porque el responsable del mantenimientoA2
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 elPodfile.lock
y utilizar adecuadamentepod install
frentepod 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
Dofuente
Estoy usando
cocoapods version 1.0.1
y usandopod update name-of-pod
funciona perfectamente. No se actualizan otros pods, solo el específico que ingresas.fuente
Esto es un poco atípico y no es probable que sea lo que el OP estaba tratando, pero
pod update <podname>
no funcionará en todos los casos si está utilizando un pod local en su computadora.En esta situación, lo único que se activará
pod update
es si hay un cambio en el archivo podspec. Sin embargo, hacer un cambio también permitirápod install
trabajar también.En esta situación, puede modificar algo menor, como la descripción o el resumen con una letra, y luego puede ejecutar el comando de instalación o actualización con éxito.
fuente