Den definitiva guiden för att installera och uppdatera pods

Gabrielle Earnshaw

Follow

9 oktober, 2018 – 5 min read

Skillnaden mellan pod install och pod update är subtil, och det är inte alltid tydligt vilket du ska använda. Men om du har en god förståelse för vad dessa kommandon gör får du mycket finare kontroll över hur beroenden hanteras i ditt projekt, så det är värt att känna till skillnaden.

I den första delen av den här artikeln kommer jag att ge dig en lista med recept som visar om du ska köra pod install eller pod update i några vanliga situationer. I den andra delen förklarar jag sedan varför de olika kommandona gör olika saker och hur CocoaPods använder filen Podfile.lock för att få allt att hända.

För att de här recepten ska fungera måste du se till att Podfile och Podfile.lock är commitade till källkodskontrollen.

Du installerar CocoaPods i ett projekt för första gången och har skapat din Podfile

pod install

Detta kommer att installera den senaste versionen* av var och en av de pods du angett i din nya Podfile. Den kommer också att skapa en MyProject.xcworkspace-fil om en sådan inte redan finns.

Du har lagt till en ny pod till din Podfile

pod install

Detta kommer att installera den senaste versionen* av alla nya pods som lagts till i din Podfile och lämna dina andra pods oförändrade.

Om du skulle köra pod update istället skulle den installera de nya pods och uppdatera var och en av dina befintliga pods till den senaste versionen*.

Du vill hämta den senaste versionen av alla pods i din Podfile

pod update

Detta kommer att gå igenom alla dina pods och se till att den senaste versionen* av var och en är installerad i ditt projekt.

Du vill hämta den senaste versionen av endast en pod i din Podfile

pod update SomePod

Detta kommer att se till att den senaste versionen* av den pod du anger installeras, samtidigt som dina andra pods lämnas oförändrade.

Du arbetar med en utvecklingspod och vill få dina senaste ändringar

pod update MyDevelopmentPod

Detta kommer att se till att den senaste versionen av din pod installeras, samtidigt som dina andra pods lämnas oförändrade.

Du har laddat ner källkoden till ett befintligt projekt som använder CocoaPods

pod install

Detta kommer att installera alla pods i Podfilen med exakt de versioner som tidigare installerades i den här delen av källkoden.

Om du skulle köra pod update i stället, så skulle det installera den senaste versionen* av varje pod i Podfilen. Detta kan hindra projektet från att byggas om de senaste versionerna inte är kompatibla med annan kod i projektet. Jag skulle rekommendera att köra pod install för att få koden att byggas och sedan uppdatera pods vid behov på ett kontrollerat sätt.

Du skriver ett skript för att bygga ett projekt på en byggserver

pod install

Detta kommer att installera alla pods i Podfilen med exakt de versioner som installerades i den version som byggs. Detta är viktigt för ett stabilt bygge, eftersom detta är de versioner som koden utvecklades mot, och det betyder att varje bygge av den delen av koden kommer att använda samma podversioner. Om du skulle använda pod update istället kan din build potentiellt använda olika versioner av pods varje gång den byggs.

Xcode rapporterar konstiga byggfel relaterade till pods

Detta händer ibland efter att du har uppdaterat pods, eller efter att du har bytt mellan grenar av ett projekt som innehåller samma pods i olika versioner.

Leta bort /Pods-katalogen och kör sedan pod install

Detta kommer att återinstallera alla pods i podfilen i exakt de versioner som tidigare var installerade, och det räcker oftast för att räta ut eventuella problem som Xcode kan råka ut för.

Ibland föreslår folk att man raderar /Pods-katalogen och Podfile.lock-filen och sedan kör pod install. Detta kommer att lösa eventuella problem med Xcode, men kommer också att uppgradera varje pod i podfilen till den senaste versionen*.

Del 2: Hur det fungerar

Skillnaden mellan pod install och pod update ligger i hur de interagerar med Podfile.lock-filen. Denna fil används för att lagra den exakta versionen av varje pod som för närvarande är installerad i ditt projekt.

Det enklaste sättet att förstå hur det fungerar är att titta på följande diagram (ansvarsfriskrivning: detta är en enkel schematisk bild snarare än ett exakt tekniskt diagram).

Pod install vs. pod update

pod update

pod update ignorerar Podfile.lock när den kontrollerar versioner. Den letar efter den senaste tillgängliga versionen* av en pod och installerar den om den inte redan är installerad.

pod install

pod install letar i Podfile.lock först när den kollar efter versioner. Om en version av podden finns listad i Podfile.lock kommer den att installera exakt den versionen. Om podden inte finns med i Podfile.lock (eller om Podfile.lock inte finns ännu) kommer den att bete sig som för pod update, dvs. den hittar den senaste tillgängliga versionen* och installerar den.

I båda fallen uppdaterar CocoaPods sedan Podfile.lock med alla nya versionsnummer som installerades.

Det här är vad som gör det möjligt för dig att använda podversioner på ett konsekvent sätt mellan olika installationer av ett projekt (dvs.t.ex. vid installation från ett arkiv, mellan flera teammedlemmar eller på en byggserver), och det är därför som Podfile.lock bör läggas in i källhanteringen.

Sammanfattning

I den här artikeln har jag gett recept som visar om man ska köra pod install eller pod update i ett antal vanliga situationer. Jag har sedan beskrivit hur och varför de två kommandona fungerar på olika sätt. Om du har funnit den användbar är du välkommen att ge den en applåd och/eller dela den, och följ mig för andra användbara artiklar.

admin

Lämna ett svar

Din e-postadress kommer inte publiceras.

lg