La guida definitiva all’installazione e all’aggiornamento dei pod

Gabrielle Earnshaw

Follow

Oct 9, 2018 – 5 min read

La differenza tra pod install e pod update è sottile, e non è sempre chiaro quale dovresti usare. Ma avere una buona comprensione di cosa fanno questi comandi ti dà un controllo molto più fine su come le dipendenze sono gestite nel tuo progetto, quindi vale la pena conoscere la differenza.

Nella prima parte di questo articolo ti darò una lista di ricette che mostrano se dovresti eseguire pod install o pod update in alcune situazioni comuni. Poi nella seconda parte spiegherò perché i diversi comandi fanno cose diverse, e come CocoaPods usa il file Podfile.lock per far accadere il tutto.

Per far funzionare queste ricette, assicuratevi che Podfile e Podfile.lock siano impegnati nel controllo dei sorgenti.

Stai impostando CocoaPods in un progetto per la prima volta e hai creato il tuo Podfile

pod install

Questo installerà l’ultima versione* di ciascuno dei pod che hai specificato nel tuo nuovo Podfile. Creerà anche un file MyProject.xcworkspace se non esiste già.

Hai aggiunto un nuovo pod al tuo Podfile

pod install

Questo installerà l’ultima versione* di ogni nuovo pod aggiunto al tuo Podfile, lasciando gli altri pod invariati.

Se invece tu eseguissi pod update, installerebbe i nuovi pod e aggiornerebbe ciascuno dei tuoi pod esistenti alla sua ultima versione*.

Vuoi ottenere l’ultima versione di tutti i pod nel tuo Podfile

pod update

Questo controllerà tutti i tuoi pod e si assicurerà che l’ultima versione* di ciascuno sia installata nel tuo progetto.

Vuoi ottenere l’ultima versione di un solo pod nel tuo Podfile

pod update SomePod

Questo si assicurerà che sia installata l’ultima versione* del pod che hai specificato, lasciando invariati gli altri pod.

Stai lavorando con un pod di sviluppo e vuoi ottenere le tue ultime modifiche

pod update MyDevelopmentPod

Questo farà in modo che venga installata l’ultima versione del tuo pod, lasciando invariati gli altri pod.

Hai scaricato il sorgente di un progetto esistente che usa CocoaPods

pod install

Questo installerà tutti i pod nel Podfile alle esatte versioni che sono state precedentemente installate in questo taglio del codice sorgente.

Se invece eseguissi pod update, installerebbe l’ultima versione* di ciascuno dei pod nel Podfile. Questo potrebbe impedire la costruzione del progetto se le ultime versioni non fossero compatibili con altro codice nel progetto. Raccomanderei di eseguire pod install per far costruire il codice, poi aggiornare i pod se necessario in modo controllato.

Stai scrivendo uno script per costruire un progetto su un build server

pod install

Questo installerà tutti i pod nel Podfile alle esatte versioni che sono state installate nella versione in costruzione. Questo è importante per una build stabile, perché queste sono le versioni con cui il codice è stato sviluppato, e significa che ogni build di quel pezzo di codice userà le stesse versioni di pod. Se dovessi usare pod update invece, la tua build potrebbe potenzialmente usare versioni diverse dei pod ogni volta che costruisce.

Xcode sta riportando strani errori di build relativi ai pod

Questo accade occasionalmente dopo l’aggiornamento dei pod, o dopo il passaggio tra rami di un progetto che contengono gli stessi pod in versioni diverse.

Cancella la directory /Pods, poi esegui pod install

Questo reinstallerà tutti i pod nel Podfile alle esatte versioni che erano state installate in precedenza, e di solito è sufficiente a risolvere qualsiasi problema che Xcode può avere.

A volte le persone suggeriscono di cancellare la directory /Pods e il filePodfile.lock, poi eseguire pod install. Questo risolverà qualsiasi problema con Xcode, ma aggiornerà anche ciascuno dei pod nel Podfile alla sua ultima versione*.

Parte 2: Come funziona

La differenza tra pod install e pod update sta nel modo in cui interagiscono con il file Podfile.lock. Questo file è usato per memorizzare l’esatta versione di ogni pod che è attualmente installato nel tuo progetto.

Il modo più semplice per capire come funziona è guardare il seguente diagramma (disclaimer: questo è un semplice schema piuttosto che un accurato diagramma tecnico).

Pod install vs. pod update

pod update

pod update ignora Podfile.lock quando controlla le versioni. Cerca l’ultima versione disponibile* di un pod, e la installa se non è già installata.

pod install

pod install guarda prima in Podfile.lock quando controlla le versioni. Se una versione del pod è elencata in Podfile.lock, installerà esattamente quella versione. Se quel pod non è elencato in Podfile.lock (o se Podfile.lock non esiste ancora), si comporterà come per pod update, cioè troverà l’ultima versione disponibile* e la installerà.

In entrambi i casi, CocoaPods aggiorna poi Podfile.lock con qualsiasi nuovo numero di versione che sia stato installato.

Questo è ciò che ti permette di usare le versioni dei pod in modo coerente attraverso diverse installazioni di un progetto (es.Cioè quando si installa da un repository, tra più membri del team, o su un server di build), ed è il motivo per cui Podfile.lock dovrebbe essere impegnato nel controllo delle fonti.

Sommario

In questo articolo ho dato delle ricette che mostrano se eseguire pod install o pod update in una serie di situazioni comuni. Ho poi descritto come e perché i due comandi lavorano in modi diversi. Se l’hai trovato utile, per favore fai un applauso e/o condividi, e seguimi per altri articoli utili.

admin

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

lg