De definitieve gids voor het installeren en updaten van pods

Gabrielle Earnshaw

Follow

9 okt, 2018 – 5 min read

Het verschil tussen pod install en pod update is subtiel, en het is niet altijd duidelijk welke u moet gebruiken. Maar een goed begrip van wat deze commando’s doen geeft je veel fijnere controle over hoe afhankelijkheden worden beheerd in je project, dus het is de moeite waard om het verschil te kennen.

In het eerste deel van dit artikel geef ik je een lijst met recepten die laten zien of je pod install of pod update moet uitvoeren in een aantal veel voorkomende situaties. Dan in het tweede deel zal ik uitleggen waarom de verschillende commando’s verschillende dingen doen, en hoe CocoaPods het Podfile.lock bestand gebruikt om het allemaal te laten gebeuren.

Om deze recepten te laten werken, zorg ervoor dat Podfile en Podfile.lock gecommit zijn aan source control.

U zet CocoaPods voor de eerste keer op in een project en hebt uw Podfile

pod install

Dit installeert de laatste versie* van elk van de pods die u in uw nieuwe Podfile hebt opgegeven. Er wordt ook een MyProject.xcworkspace bestand aangemaakt als er nog geen bestond.

U heeft een nieuwe pod aan uw Podfile toegevoegd

pod install

Dit installeert de laatste versie* van alle nieuwe pods die aan uw Podfile zijn toegevoegd, waarbij uw andere pods ongewijzigd blijven.

Als u pod update in plaats daarvan zou uitvoeren, zou het de nieuwe pods installeren en elk van uw bestaande pods bijwerken naar de nieuwste versie*.

U wilt de nieuwste versie van alle pods in uw Podfile

pod update

Dit zal al uw pods doorlopen en ervoor zorgen dat de nieuwste versie* van elk is geïnstalleerd in uw project.

U wilt de laatste versie van slechts één pod in uw Podfile

pod update SomePod

Dit zorgt ervoor dat de laatste versie* van de pod die u opgeeft wordt geïnstalleerd, terwijl uw andere pods ongewijzigd blijven.

U werkt met een ontwikkel pod en wilt uw laatste wijzigingen

pod update MyDevelopmentPod

Dit zorgt ervoor dat de laatste versie van uw pod wordt geïnstalleerd, terwijl uw andere pods ongewijzigd blijven.

U hebt de broncode gedownload voor een bestaand project dat CocoaPods gebruikt

pod install

Dit zal alle pods in het Podfile installeren op de exacte versies die eerder zijn geïnstalleerd in dit deel van de broncode.

Als u pod update in plaats daarvan zou uitvoeren, zou het de laatste versie* van elk van de pods in het Podfile installeren. Dit zou kunnen voorkomen dat het project wordt gebouwd als de laatste versies niet compatibel zijn met andere code in het project. Ik zou aanraden om pod install uit te voeren om de code te laten bouwen, en dan pods bij te werken indien nodig op een gecontroleerde manier.

U schrijft een script om een project te bouwen op een build server

pod install

Dit installeert alle pods in het Podfile op exact dezelfde versies die werden geïnstalleerd in de versie die wordt gebouwd. Dit is belangrijk voor een stabiele build, omdat dit de versies zijn waarmee de code is ontwikkeld, en het betekent dat elke build van dat deel van de code dezelfde pod-versies zal gebruiken. Als u pod update in plaats daarvan zou gebruiken, zou uw build mogelijk verschillende versies van pods kunnen gebruiken elke keer dat het bouwt.

Xcode rapporteert vreemde bouwfouten met betrekking tot pods

Dit gebeurt soms na het bijwerken van pods, of na het schakelen tussen takken van een project die dezelfde pods bevatten met verschillende versies.

Verwijder de /Pods directory, en voer dan

Dit zal alle pods in het Podfile opnieuw installeren op exact dezelfde versies die eerder waren geïnstalleerd, en is meestal voldoende om problemen met Xcode op te lossen.

Soms wordt voorgesteld om de /Pods directory en hetPodfile.lock bestand te verwijderen, en dan pod install uit te voeren. Dit lost eventuele problemen met Xcode op, maar zal ook elk van de pods in het Podfile upgraden naar de laatste versie*.

Deel 2: Hoe het werkt

Het verschil tussen pod install en pod update ligt in hoe ze interageren met het Podfile.lock bestand. Dit bestand wordt gebruikt om de exacte versie van elke pod op te slaan die momenteel in uw project is geïnstalleerd.

De eenvoudigste manier om te begrijpen hoe het werkt is te kijken naar het volgende diagram (disclaimer: dit is een eenvoudig schema in plaats van een nauwkeurig technisch diagram).

Pod install vs pod update

pod update

pod update negeert Podfile.lock bij het controleren op versies. Het zoekt naar de laatst beschikbare versie* van een pod, en installeert het als het nog niet geïnstalleerd is.

pod install

pod install kijkt eerst in Podfile.lock wanneer het controleert op versies. Als een versie van de pod wordt genoemd in Podfile.lock, zal het precies die versie installeren. Als die pod niet is opgenomen in Podfile.lock (of als Podfile.lock nog niet bestaat), zal het zich gedragen als voor pod update, dat wil zeggen het vindt de nieuwste beschikbare versie * en installeert het.

In beide gevallen, CocoaPods dan werkt Podfile.lock met alle nieuwe versienummers die werden geïnstalleerd.

Dit is wat stelt u in staat om pod versies consistent te gebruiken over verschillende installaties van een project (i.d. bij installatie vanuit een repository, over meerdere teamleden, of op een build server), en is de reden waarom Podfile.lock moet worden gecommit aan bronbeheer.

Samenvatting

In dit artikel heb ik recepten gegeven die laten zien of pod install of pod update in een aantal veel voorkomende situaties moet worden uitgevoerd. Daarna heb ik beschreven hoe en waarom de twee commando’s op verschillende manieren werken. Als je het nuttig vond, geef het dan een applaus en/of deel het, en volg me voor andere nuttige artikelen.

admin

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.

lg