- Den definitive guide til installation og opdatering af pods
- Du sætter CocoaPods op i et projekt for første gang og har oprettet din Podfile
- Du har tilføjet en ny pod til din Podfil
- Du ønsker at få den nyeste version af alle pods i din Podfile
- Du ønsker kun at hente den nyeste version af én pod i din Podfile
- Du arbejder med en udviklings-pod og ønsker at få dine seneste ændringer
- Du har hentet kildekoden til et eksisterende projekt, der bruger CocoaPods
- Du skriver et script til at bygge et projekt på en buildserver
- Xcode rapporterer underlige build-fejl vedrørende pods
- Del 2: Sådan fungerer det
- pod update
- pod install
- Summary
Den definitive guide til installation og opdatering af pods
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).