Den definitive guide til installation og opdatering af pods

Gabrielle Earnshaw

Follow
9. oktober, 2018 – 5 min read

Skellen mellem pod install og pod update er subtil, og det er ikke altid klart, hvilken du skal bruge. Men hvis du har en god forståelse af, hvad disse kommandoer gør, får du meget finere kontrol over, hvordan afhængigheder håndteres i dit projekt, så det er værd at kende forskellen.

I første del af denne artikel giver jeg dig en liste med opskrifter, der viser, om du bør køre pod install eller pod update i nogle almindelige situationer. Derefter vil jeg i anden del forklare, hvorfor de forskellige kommandoer gør forskellige ting, og hvordan CocoaPods bruger filen Podfile.lock til at få det hele til at ske.

For at disse opskrifter kan fungere, skal du sikre dig, at Podfile og Podfile.lock er commitet til kildekontrollen.

Du sætter CocoaPods op i et projekt for første gang og har oprettet din Podfile

pod install

Dette vil installere den nyeste version* af hver af de pods, du har angivet i din nye Podfile. Den vil også oprette en MyProject.xcworkspace-fil, hvis der ikke allerede findes en.

Du har tilføjet en ny pod til din Podfil

pod install

Dette vil installere den seneste version* af alle nye pods, der er tilføjet til din Podfil, og lade dine andre pods forblive uændrede.

Hvis du kørte pod update i stedet, ville den installere de nye pods og opdatere hver af dine eksisterende pods til den nyeste version*.

Du ønsker at få den nyeste version af alle pods i din Podfile

pod update

Dette vil gå igennem alle dine pods og sikre, at den nyeste version* af hver enkelt er installeret i dit projekt.

Du ønsker kun at hente den nyeste version af én pod i din Podfile

pod update SomePod

Dette vil sikre, at den nyeste version* af den pod, du angiver, installeres, mens dine andre pods forbliver uændrede.

Du arbejder med en udviklings-pod og ønsker at få dine seneste ændringer

pod update MyDevelopmentPod

Dette vil sikre, at den seneste version af din pod installeres, mens dine andre pods forbliver uændrede.

Du har hentet kildekoden til et eksisterende projekt, der bruger CocoaPods

pod install

Dette vil installere alle pods i podfilen i nøjagtig de versioner, der tidligere blev installeret i dette udsnit af kildekoden.

Hvis du i stedet kører pod update, vil det installere den nyeste version* af hver af pods i podfilen. Dette kunne forhindre projektet i at blive bygget, hvis de nyeste versioner ikke var kompatible med anden kode i projektet. Jeg vil anbefale at køre pod install for at få koden til at bygge, og derefter opdatere pods efter behov på en kontrolleret måde.

Du skriver et script til at bygge et projekt på en buildserver

pod install

Dette vil installere alle pods i podfilen med nøjagtig de versioner, der blev installeret i den version, der bygges. Dette er vigtigt for et stabilt build, fordi det er de versioner, som koden blev udviklet i forhold til, og det betyder, at alle builds af den pågældende del af koden vil bruge de samme pod-versioner. Hvis du i stedet bruger pod update, kan din build potentielt bruge forskellige pod-versioner hver gang den buildes.

Xcode rapporterer underlige build-fejl vedrørende pods

Dette sker lejlighedsvis efter opdatering af pods, eller efter skift mellem grene af et projekt, der indeholder de samme pods i forskellige versioner.

Slet mappen /Pods, og kør derefter pod install

Dette vil geninstallere alle pods i podfilen i de nøjagtige versioner, der tidligere var installeret, og er normalt nok til at rette op på eventuelle problemer, som Xcode kan finde sig selv med.

I nogle tilfælde foreslår folk at slette mappen /Pods og filenPodfile.lock, og derefter køre pod install. Dette vil løse eventuelle problemer med Xcode, men vil også opgradere hver enkelt pod i podfilen til den nyeste version*.

Del 2: Sådan fungerer det

Den forskel mellem pod install og pod update ligger i, hvordan de interagerer med Podfile.lock-filen. Denne fil bruges til at gemme den nøjagtige version af hver pod, der i øjeblikket er installeret i dit projekt.

Den nemmeste måde at forstå, hvordan det fungerer, er at se på følgende diagram (ansvarsfraskrivelse: dette er et simpelt skema snarere end et nøjagtigt teknisk diagram).

Pod install vs. pod update

pod update

pod update ignorerer Podfile.lock, når der tjekkes for versioner. Den leder efter den seneste tilgængelige version* af en pod og installerer den, hvis den ikke allerede er installeret.

pod install

pod install kigger først i Podfile.lock, når den tjekker efter versioner. Hvis en version af pod’en er opført i Podfile.lock, vil den installere netop den version. Hvis den pågældende pod ikke er opført i Podfile.lock (eller hvis Podfile.lock ikke findes endnu), opfører den sig som for pod update, dvs. den finder den seneste tilgængelige version* og installerer den.

I begge tilfælde opdaterer CocoaPods derefter Podfile.lock med eventuelle nye versionsnumre, der blev installeret.

Dette er det, der gør det muligt at bruge pod-versioner konsistent på tværs af forskellige installationer af et projekt (i.f.eks. ved installation fra et repository, på tværs af flere teammedlemmer eller på en buildserver), og det er derfor, at Podfile.lock skal overføres til kildekontrollen.

Summary

I denne artikel har jeg givet opskrifter, der viser, om pod install eller pod update skal køres i en række almindelige situationer. Jeg har derefter beskrevet, hvordan og hvorfor de to kommandoer virker på forskellige måder. Hvis du har fundet den nyttig, så giv den et klap og/eller del den, og følg mig for andre nyttige artikler.

admin

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.

lg