Executarea pod install va instala versiunea curentă de RestKit, determinând generarea unui Podfile.lock care indică versiunea exactă instalată (de exemplu, RestKit 0.10.3). Mulțumită Podfile.lock, rularea pod install pe acest proiect ipotetic la un moment ulterior, pe o altă mașină, va instala în continuare RestKit 0.10.3, chiar dacă este disponibilă o versiune mai nouă. CocoaPods va onora versiunea Pod din Podfile.lock, cu excepția cazului în care dependența este actualizată în fișierul Podfile sau este apelat pod update (ceea ce va determina generarea unui nou Podfile.lock). În acest fel, CocoaPods evită durerile de cap cauzate de modificări neașteptate ale dependențelor.

Există un videoclip excelent de la Google despre cum funcționează acest lucru: „CocoaPods and Lockfiles (Route 85)”.

<Ce se întâmplă în spatele scenei?

În Xcode, cu referințe direct din sursa ruby, se:

  1. Creează sau actualizează un spațiu de lucru.
  2. Adaugă proiectul dvs. la spațiul de lucru, dacă este necesar.
  3. Adaugă proiectul bibliotecii statice CocoaPods la spațiul de lucru, dacă este necesar.
  4. Adaugă libPods.a la: targets => build phases => link with libraries.
  5. Adaugă fișierul de configurare CocoaPods Xcode la proiectul aplicației dumneavoastră.
  6. Modifică configurațiile țintă ale aplicației dumneavoastră pentru a se baza pe cele ale CocoaPods.
  7. Adăugă o fază de construcție pentru a copia resursele de la orice poduri pe care le-ați instalat în pachetul aplicației dvs. adică o „Script build phase” după toate celelalte faze de construcție cu următoarele:
    • Shell: /bin/sh
    • Script: ${SRCROOT}/Pods/PodsResources.sh

Rețineți că pașii de la 3 în sus sunt săriți dacă biblioteca statică CocoaPods se află deja în proiectul dumneavoastră. Acest lucru se bazează în mare parte pe lucrarea lui Jonah Williams privind bibliotecile statice.

<Pods și submodule

CocoaPods și submodulele git încearcă să rezolve probleme foarte asemănătoare. Ambele se străduiesc să simplifice procesul de includere a codului de la terțe părți în proiectul dumneavoastră. Submodulele se leagă de un commit specific al acelui proiect, în timp ce un CocoaPod este legat de o versiune pentru dezvoltatori.

<Schimbarea de la submodule la CocoaPods

Înainte de a vă decide să faceți trecerea completă la CocoaPods, asigurați-vă că bibliotecile pe care le folosiți în prezent sunt toate disponibile. De asemenea, este o idee bună să înregistrați versiunile bibliotecilor pe care le utilizați în prezent, astfel încât să puteți configura CocoaPods pentru a le utiliza pe aceleași. De asemenea, este o idee bună să faceți acest lucru în mod incremental, mergând dependență cu dependență, în loc să faceți o singură mișcare mare.

Lasă un răspuns

Adresa ta de email nu va fi publicată.