Kørsel af pod install
installerer den aktuelle version af RestKit og genererer en Podfile.lock
, der angiver den nøjagtige version, der er installeret (f.eks. RestKit 0.10.3
). Takket være Podfile.lock
vil kørsel af pod install
på dette hypotetiske projekt på et senere tidspunkt på en anden maskine stadig installere RestKit 0.10.3, selv om en nyere version er tilgængelig. CocoaPods vil respektere Pod-versionen i Podfile.lock
, medmindre afhængigheden opdateres i Podfilen eller pod update
kaldes (hvilket vil medføre, at der genereres en ny Podfile.lock
). På denne måde undgår CocoaPods hovedpine forårsaget af uventede ændringer af afhængigheder.
Der er en god video fra Google om, hvordan dette fungerer: “CocoaPods and Lockfiles (Route 85)”.
<Hvad sker der bag kulisserne?
I Xcode, med referencer direkte fra ruby-kilden, sker der:
- Skabelse eller opdatering af et arbejdsområde.
- Tilføjer dit projekt til arbejdsområdet, hvis det er nødvendigt.
- Tilføjer det statiske CocoaPods-biblioteksprojekt til arbejdsområdet, hvis det er nødvendigt.
- Tilføjer libPods.a til: targets => build phases => link with libraries.
- Føjer CocoaPods Xcode-konfigurationsfilen til appens projekt.
- Ændrer appens målkonfigurationer, så de er baseret på CocoaPods’.
- Føjer en opbygningsfase til at kopiere ressourcer fra eventuelle pods, du har installeret, til dit app-bundle. dvs. en “Script-opbygningsfase” efter alle andre opbygningsfaser med følgende:
- Shell:
/bin/sh
- Script:
${SRCROOT}/Pods/PodsResources.sh
- Shell:
Bemærk, at trin 3 og fremefter springes over, hvis det statiske CocoaPods-bibliotek allerede findes i dit projekt. Dette er i høj grad baseret på Jonah Williams’ arbejde om statiske biblioteker.
<Pods og submoduler
CocoaPods og git-submoduler forsøger at løse meget lignende problemer. Begge bestræber sig på at forenkle processen med at inkludere kode fra tredjepart i dit projekt. Submodules linker til et specifikt commit af det pågældende projekt, mens en CocoaPod er bundet til en versioneret udviklerudgave.
<Skift fra submodules til CocoaPods
Hvor du beslutter dig for at foretage det fulde skift til CocoaPods, skal du sikre dig, at de biblioteker, du bruger i øjeblikket, alle er tilgængelige. Det er også en god idé at registrere versionerne af de biblioteker, du bruger i øjeblikket, så du kan indstille CocoaPods til at bruge de samme biblioteker. Det er også en god idé at gøre dette trinvis, idet du går afhængighed for afhængighed i stedet for at foretage ét stort træk.