Middle
Hogyan kezeljük a függőségeket egy iOS projektben?
sobes.tech MI
Válasz az MI-től
Néhány népszerű módszer a következő:
-
CocoaPods:
- Decentralizált függőségkezelő, Ruby nyelven írva.
.podspecfájlokat használ a függőségek leírására.- A
sudo gem install cocoapodsparancs segítségével telepíthető. - Podfile-t ad hozzá a projekt gyökérkönyvtárához.
- A függőségek telepítéséhez és a
.xcworkspacemunkaterület létrehozásához futtassa apod installparancsot.
-
Carthage:
- Decentralizált függőségkezelő, amely framework-öket fordít.
- Swift nyelven íródott.
- Binaris framework-okat részesít előnyben.
- A Homebrew segítségével telepíthető a
brew install carthageparancs segítségével. - A függőségek leírására a Cartfile-t használja.
- A
carthage update --platform iOSparancsot futtassa. - A fordított framework-okat manuálisan adja hozzá a Target > General > Frameworks, Libraries, and Embedded Content szekcióhoz.
-
Swift Package Manager (SPM):
- Beépített függőségkezelő Xcode-ban a Swifthez.
- Központosított megközelítés csomag-archívumok használatával.
- A függőségek leírására a
Package.swiftfájlt használja. - Közvetlenül az Xcode-ba integrálva.
- Függőségek hozzáadása a File > Add Packages... vagy a Project > Package Dependencies menüpontokon keresztül.
- Automatikus függőség feloldás és letöltés.
Összehasonlítás:
| Jellemző | CocoaPods | Carthage | Swift Package Manager (SPM) |
|---|---|---|---|
| Nyelv | Ruby | Swift | Swift |
| Telepítés | gem install |
brew install |
Beépített az Xcode-ba |
| Konfigurációs fájlok | Podfile, .podspec |
Cartfile | Package.swift |
| Függőségtípus | Forráskód, bináris framework-ök | Binaris framework-okat részesít előnyben | Forráskód |
| Xcode integráció | Létrehoz .xcworkspace |
Manuálisan hozzáadott framework-ök | Beépített az Xcode-ba |
| Decentralizáció | Igen | Igen | Igen |
| Centralizáció | Nem | Nem | Igen (tárolókon keresztül) |
A választás a csapat preferenciáitól, a függőségek típusától és a Xcode-hoz való szoros integráció szükségességétől függ. A SPM de facto szabvány lett, különösen új Swift projektek esetén.