O guia definitivo para instalação e atualização de pods

Gabrielle Earnshaw

Siga-me

9 de outubro, 2018 – 5 min leia-se

A diferença entre pod install e pod update é subtil, e nem sempre é claro o que se deve usar. Mas ter uma boa compreensão do que estes comandos fazem dá-lhe um controlo muito mais fino sobre como as dependências são geridas no seu projecto, por isso vale a pena saber a diferença.

Na primeira parte deste artigo vou dar-lhe uma lista de receitas mostrando se deve executar pod install ou pod update em algumas situações comuns. Depois na segunda parte vou explicar porque os diferentes comandos fazem coisas diferentes, e como CocoaPods usa o arquivo Podfile.lock para fazer tudo acontecer.

Para que estas receitas funcionem, certifique-se de que Podfile e Podfile.lock estão comprometidos com o controle da fonte.

Você está configurando CocoaPods em um projeto pela primeira vez e criou seu Podfile

pod install

Isto irá instalar a última versão* de cada um dos pods que você especificou no seu novo Podfile. Irá também criar um ficheiro MyProject.xcworkspace se ainda não existir um.

Adicionou um novo pod ao seu Podfile

pod install

Isto irá instalar a última versão* de quaisquer novos pods adicionados ao seu Podfile, deixando os seus outros pods inalterados.

Se em vez disso você executasse pod update, instalaria os novos pods e atualizaria cada um dos seus pods existentes para a sua última versão*.

Você quer obter a última versão de todos os pods no seu Podfile

pod update

Isto irá passar por todos os seus pods e certificar-se de que a última versão* de cada um está instalada no seu projeto.

Você quer obter a última versão de apenas um pod no seu podfile

pod update SomePod

Isso irá garantir que a última versão* do pod que você especificar esteja instalada, enquanto deixa os outros pods inalterados.

Você está trabalhando com um pod de desenvolvimento e quer obter suas últimas alterações

pod update MyDevelopmentPod

Isso irá garantir que a última versão do seu pod seja instalada, enquanto deixa seus outros pods inalterados.

Você baixou o código fonte de um projeto existente que usa CocoaPods

pod install

Isto irá instalar todos os pods no Podfile nas versões exatas que foram instaladas anteriormente neste corte do código fonte.

Se você tivesse que rodar pod update em vez disso, ele instalaria a última versão* de cada um dos pods no Podfile. Isto poderia impedir o projeto de construir se as últimas versões não fossem compatíveis com outros códigos no projeto. Eu recomendaria correr pod install para obter a compilação do código e depois actualizar os pods conforme necessário de uma forma controlada.

>

Você está a escrever um script para compilar um projecto num servidor de compilação

pod install

Isto irá instalar todos os pods no Podfile nas versões exactas que foram instaladas na versão a ser compilada. Isto é importante para uma compilação estável, pois estas são as versões contra as quais o código foi desenvolvido, e significa que cada compilação desse corte de código utilizará as mesmas versões de pod. Se em vez disso usar pod update, a sua compilação pode potencialmente usar versões diferentes de pods cada vez que constrói.

Xcode está a reportar erros de compilação estranhos relacionados com pods

Isto ocasionalmente acontece depois de actualizar pods, ou depois de mudar entre ramos de um projecto que contém os mesmos pods em versões diferentes.

Eliminar o directório /Pods, depois executar pod install

Isto irá reinstalar todos os pods no ficheiro Podfile nas versões exactas que foram previamente instaladas, e normalmente é suficiente para resolver quaisquer problemas que o Xcode possa encontrar com.

Por vezes as pessoas sugerem apagar o directório /Pods e o ficheiroPodfile.lock, depois executar pod install. Isto irá resolver quaisquer problemas com o Xcode, mas também irá actualizar cada um dos pods no ficheiro Podfile para a sua última versão*.

Parte 2: Como funciona

A diferença entre pod install e pod update reside na forma como interagem com o ficheiro Podfile.lock. Este arquivo é usado para armazenar a versão exata de cada pod que está atualmente instalado no seu projeto.

A maneira mais fácil de entender como funciona é olhar para o seguinte diagrama (disclaimer: este é um esquema simples ao invés de um diagrama técnico preciso).

>777777>
Instalação do iPod vs. actualização da cápsula

actualização da cápsula

pod update ignora Podfile.lock ao verificar as versões. Procura a última versão* disponível de uma cápsula, e instala-a se ainda não estiver instalada.

pod install

pod install procura em Podfile.lock primeiro ao verificar as versões. Se uma versão da cápsula estiver listada em Podfile.lock, ela irá instalar essa versão exata. Se esse pod não estiver listado em Podfile.lock (ou se Podfile.lock ainda não existir), ele se comportará como para pod update, ou seja, ele encontra a última versão disponível* e a instala.

Em ambos os casos, CocoaPods então atualiza Podfile.lock com quaisquer novos números de versão que foram instalados.

Isto é o que permite que você use versões de pod consistentemente em diferentes instalações de um projeto (i.e. ao instalar a partir de um repositório, entre vários membros da equipe, ou em um servidor de compilação), e é por isso que Podfile.lock deve ser comprometido com o controle do código fonte.

Resumo

Neste artigo eu dei receitas mostrando se deve executar pod install ou pod update em uma série de situações comuns. Eu então descrevi como e porque os dois comandos funcionam de maneiras diferentes. Se você achou útil, por favor dê um aplauso e/ou compartilhe, e me siga para outros artigos úteis.

admin

Deixe uma resposta

O seu endereço de email não será publicado.

lg