Middle
Kako upravljati zavisnostima u iOS projektu?
sobes.tech АИ
Одговор од АИ
Postoji nekoliko popularnih načina:
-
CocoaPods:
- Decentralizovani menadžer zavisnosti napisan u Ruby-ju.
- Koristi
.podspecfajlove za opis zavisnosti. - Instalira se komandom
sudo gem install cocoapods. - Dodaje Podfile u korenski direktorijum projekta.
- Pokreće se
pod installza instalaciju zavisnosti i kreiranje radnog prostora.xcworkspace.
-
Carthage:
- Decentralizovani menadžer zavisnosti koji sastavlja framework-ove.
- Napisan je u Swift-u.
- Preferira binarne framework-ove.
- Instalira se putem Homebrew
brew install carthage. - Koristi Cartfile za opis zavisnosti.
- Pokreće se
carthage update --platform iOS. - Sastavljeni framework-ovi se ručno dodaju u Target > General > Frameworks, Libraries, and Embedded Content.
-
Swift Package Manager (SPM):
- Ugrađeni menadžer zavisnosti u Xcode za Swift.
- Centralizovani pristup korišćenjem repozitorijuma paketa.
- Koristi
Package.swiftza opis zavisnosti. - Direktno integrisan u Xcode.
- Dodavanje zavisnosti putem File > Add Packages... ili Project > Package Dependencies.
- Automatsko rešavanje i preuzimanje zavisnosti.
Poređenje:
| Osobina | CocoaPods | Carthage | Swift Package Manager (SPM) |
|---|---|---|---|
| Jezik | Ruby | Swift | Swift |
| Instalacija | gem install |
brew install |
Ugrađen u Xcode |
| Konfiguracioni fajlovi | Podfile, .podspec |
Cartfile | Package.swift |
| Tip zavisnosti | Izvorni kod, binarni framework-ovi | Preferirani binarni framework-ovi | Izvorni kod |
| Integracija sa Xcode | Kreira .xcworkspace |
Ručno dodavanje framework-ova | Ugrađen u Xcode |
| Decentralizacija | Da | Da | Da |
| Centralizacija | Ne | Ne | Da (preko repozitorijuma) |
Izbor zavisi od preferencija tima, tipa zavisnosti i potrebe za bliskom integracijom sa Xcode-om. SPM postaje de facto standard, posebno za nove projekte na Swift-u.