Ajattamalla pod install
asennetaan RestKitin nykyinen versio, jolloin syntyy Podfile.lock
, joka ilmoittaa asennetun version (esim. RestKit 0.10.3
). Podfile.lock
:n ansiosta pod install
:n ajaminen tällä hypoteettisella projektilla myöhemmin eri koneella asentaa RestKit 0.10.3:n, vaikka uudempi versio olisi saatavilla. CocoaPodit kunnioittavat Podfile.lock
:ssä olevaa Pod-versiota, ellei riippuvuutta päivitetä Pod-tiedostossa tai kutsuta pod update
:tä (mikä aiheuttaa uuden Podfile.lock
:n luomisen). Näin CocoaPods välttää riippuvuuksien odottamattomien muutosten aiheuttamat päänvaivat.
Tässä on hyvä video Googlelta siitä, miten tämä toimii: ”CocoaPods and Lockfiles (Route 85)”.
<Mitä kulissien takana tapahtuu?
Xcodessa, viittauksilla suoraan ruby-lähteestä, se:
- Luo tai päivittää työtilan.
- Lisää tarvittaessa projektisi työtilaan.
- Lisää tarvittaessa CocoaPodsin staattisen kirjastoprojektin työtilaan.
- Lisää libPodsin.a to: targets => build phases => link with libraries.
- Lisää CocoaPodsin Xcode-konfiguraatiotiedoston sovelluksesi projektiin.
- Muuttaa sovelluksesi kohdekonfiguraatiot perustumaan CocoaPodsin.
- Lisää rakennusvaiheen, joka kopioi resursseja kaikista asentamistasi podeista sovelluspakettiisi. eli ’Script build phase’ kaikkien muiden rakennusvaiheiden jälkeen seuraavalla:
- Shell:
/bin/sh
- Script:
${SRCROOT}/Pods/PodsResources.sh
- Shell:
Huomaa, että vaiheet 3 eteenpäin ohitetaan, jos CocoaPodsin staattinen kirjasto on jo projektissasi. Tämä perustuu pitkälti Jonah Williamsin työhön Static Libraries.
<Podit ja alamoduulit
CocoaPodit ja git-alamoduulit yrittävät ratkaista hyvin samanlaisia ongelmia. Molemmat pyrkivät yksinkertaistamaan kolmannen osapuolen koodin sisällyttämistä projektiin. Submoduulit linkittyvät kyseisen projektin tiettyyn commitiin, kun taas CocoaPod on sidottu versioituun kehittäjäjulkaisuun.
<Vaihtaa submoduuleista CocoaPodeihin
Ennen kuin päätät siirtyä kokonaan CocoaPodeihin, varmista, että kaikki tällä hetkellä käyttämäsi kirjastot ovat saatavilla. On myös hyvä idea kirjata ylös tällä hetkellä käyttämiesi kirjastojen versiot, jotta voit asettaa CocoaPodsin käyttämään samoja kirjastoja. On myös hyvä idea tehdä tämä inkrementaalisesti, etenemällä riippuvuus riippuvuus kerrallaan yhden ison siirron sijaan.