A pod install futtatása telepíti a RestKit aktuális verzióját, ami egy Podfile.lock generálását eredményezi, amely jelzi a telepített verzió pontos számát (pl. RestKit 0.10.3). A Podfile.lock-nak köszönhetően a pod install futtatása ezen a feltételezett projekten egy későbbi időpontban, egy másik gépen akkor is telepíti a RestKit 0.10.3-as verzióját, ha egy újabb verzió is elérhető. A CocoaPods tiszteletben tartja a Podfile.lock-ban lévő Pod verziót, kivéve, ha a függőséget frissítik a Podfile-ban, vagy a pod update-t hívják meg (ami egy új Podfile.lock generálását eredményezi). Ily módon a CocoaPods elkerüli a függőségek váratlan változása okozta fejfájást.

A Google-tól van egy remek videó arról, hogyan működik ez: “CocoaPods and Lockfiles (Route 85)”.

<Mi történik a színfalak mögött?

Az Xcode-ban, közvetlenül a ruby forrásból származó hivatkozásokkal:

  1. Elkészít vagy frissít egy munkaterületet.
  2. Hozzáadja a projektjét a munkaterülethez, ha szükséges.
  3. Hozzáadja a CocoaPods statikus könyvtár projektet a munkaterülethez, ha szükséges.
  4. Hozzáadja a libPods.a következőhöz: targets => build phases => link with libraries.
  5. Adja hozzá a CocoaPods Xcode konfigurációs fájlját az alkalmazás projektjéhez.
  6. Módosítja az alkalmazás célkonfigurációit, hogy azok a CocoaPods konfigurációin alapuljanak.
  7. Hozzáad egy építési fázist, hogy a telepített podokból származó erőforrásokat az alkalmazáscsomagodba másolja. azaz egy ‘Script építési fázist’ az összes többi építési fázis után a következőkkel:
    • Shell: /bin/sh
    • Script: ${SRCROOT}/Pods/PodsResources.sh

Megjegyezzük, hogy a 3. lépéstől kezdve kihagyjuk, ha a CocoaPods statikus könyvtár már szerepel a projektben. Ez nagyrészt Jonah Williams Statikus könyvtárakkal kapcsolatos munkáján alapul.

<Pods és szubmodulok

A CocoaPods és a git szubmodulok nagyon hasonló problémákat próbálnak megoldani. Mindkettő arra törekszik, hogy leegyszerűsítse a harmadik fél kódjának a projektbe való bevonását. Az almodulok az adott projekt egy adott commitjához kapcsolódnak, míg a CocoaPod egy verziószámozott fejlesztői kiadáshoz kötődik.

<Váltás az almodulokról a CocoaPodokra

Mielőtt úgy dönt, hogy teljesen átáll a CocoaPodokra, győződjön meg róla, hogy a jelenleg használt könyvtárak mind rendelkezésre állnak. Az is jó ötlet, ha feljegyzi a jelenleg használt könyvtárak verzióit, hogy a CocoaPods-t úgy tudja beállítani, hogy ugyanazokat használja. Az is jó ötlet, ha ezt inkrementálisan, függőségről függőségre haladva tesszük, ahelyett, hogy egy nagy lépést tennénk.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.