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:
- Elkészít vagy frissít egy munkaterületet.
- Hozzáadja a projektjét a munkaterülethez, ha szükséges.
- Hozzáadja a CocoaPods statikus könyvtár projektet a munkaterülethez, ha szükséges.
- Hozzáadja a libPods.a következőhöz: targets => build phases => link with libraries.
- Adja hozzá a CocoaPods Xcode konfigurációs fájlját az alkalmazás projektjéhez.
- Módosítja az alkalmazás célkonfigurációit, hogy azok a CocoaPods konfigurációin alapuljanak.
- 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
- Shell:
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.