Spuštěním pod install
se nainstaluje aktuální verze RestKitu, přičemž se vygeneruje Podfile.lock
, který označuje přesnou nainstalovanou verzi (např. RestKit 0.10.3
). Díky Podfile.lock
se při spuštění pod install
na tomto hypotetickém projektu v pozdějším okamžiku na jiném počítači nainstaluje RestKit 0.10.3, i když je k dispozici novější verze. CocoaPods bude respektovat verzi Pod v Podfile.lock
, pokud nebude aktualizována závislost v souboru Pod nebo nebude zavolán pod update
(což způsobí vygenerování nového Podfile.lock
). Tímto způsobem se CocoaPods vyhne bolestem hlavy způsobeným neočekávanými změnami závislostí.
O tom, jak to funguje, existuje skvělé video od společnosti Google: „CocoaPods and Lockfiles (Route 85)“.
<Co se děje v zákulisí?
V Xcode, s odkazy přímo ze zdrojového kódu Ruby, se:
- Vytvoří nebo aktualizuje pracovní prostor.
- V případě potřeby přidá do pracovního prostoru váš projekt.
- V případě potřeby přidá do pracovního prostoru projekt statické knihovny CocoaPods.
- Přidá libPods.a to: targets => build phases => link with libraries.
- Přidá konfigurační soubor CocoaPods Xcode k projektu vaší aplikace.
- Změní cílové konfigurace vaší aplikace tak, aby vycházely z konfigurací CocoaPods.
- Přidá fázi sestavení, která zkopíruje zdroje ze všech nainstalovaných podů do balíčku vaší aplikace. tj. fázi ‚Script build phase‘ po všech ostatních fázích sestavení s následujícím:
- Shell:
/bin/sh
- Script:
${SRCROOT}/Pods/PodsResources.sh
- Shell:
Poznamenejte, že kroky 3 a dále se přeskočí, pokud je statická knihovna CocoaPods již ve vašem projektu. Tento postup do značné míry vychází z práce Jonaha Williamse o statických knihovnách.
<Pody a submoduly
CocoaPods a git submoduly se snaží řešit velmi podobné problémy. Obě se snaží zjednodušit proces začlenění kódu třetích stran do vašeho projektu. Submoduly se vážou na konkrétní revizi daného projektu, zatímco CocoaPod je vázán na vývojářskou verzi.
<Přechod ze submodulů na CocoaPods
Než se rozhodnete pro úplný přechod na CocoaPods, ujistěte se, že všechny knihovny, které v současné době používáte, jsou dostupné. Je také dobré si zaznamenat verze knihoven, které v současné době používáte, abyste mohli nastavit CocoaPods tak, aby používaly stejné verze. Je také dobré postupovat postupně, závislost po závislosti, namísto jednoho velkého kroku.