Middle
Kaip valdyti priklausomybes iOS projekte?
sobes.tech AI
Atsakymas iš AI
Yra keletas populiarių būdų:
-
CocoaPods:
- Decentralizuotas priklausomybių valdytojas, parašytas Ruby.
- Naudoja
.podspecfailus priklausomybei aprašyti. - Įdiegiama komanda
sudo gem install cocoapods. - Prideda Podfile į projekto šaknį.
- Paleidžiama
pod installpriklausomybių įdiegimui ir.xcworkspacedarbo erdvės sukūrimui.
-
Carthage:
- Decentralizuotas priklausomybių valdytojas, kuris kuria framework'us.
- Parašytas Swift.
- Teikia pirmenybę binariniams framework'ams.
- Įdiegiamas per Homebrew
brew install carthage. - Naudoja Cartfile priklausomybių aprašymui.
- Paleidžiama
carthage update --platform iOS. - Sukurtus framework'us rankiniu būdu prideda į Target > General > Frameworks, Libraries, and Embedded Content.
-
Swift Package Manager (SPM):
- Integruotas į Xcode priklausomybių valdytojas Swift.
- Centralizuotas požiūris naudojant paketų saugyklas.
- Naudoja
Package.swiftpriklausomybių aprašymui. - Tiesiogiai integruotas į Xcode.
- Priklausomybes prideda per File > Add Packages... arba Project > Package Dependencies.
- Automatinis sprendimas ir priklausomybių atsisiuntimas.
Palyginimas:
| Savybė | CocoaPods | Carthage | Swift Package Manager (SPM) |
|---|---|---|---|
| Kalba | Ruby | Swift | Swift |
| Diegimas | gem install |
brew install |
Integruotas į Xcode |
| Konfigūracijos failai | Podfile, .podspec |
Cartfile | Package.swift |
| Priklausomybių tipas | Pirminis kodas, binariniai framework'ai | Pirmenybė teikiama binariniams framework'ams | Pirminis kodas |
| Integracija su Xcode | Kuria .xcworkspace |
Rankiniu būdu prideda framework'us | Integruotas į Xcode |
| Decentralizacija | Taip | Taip | Taip |
| Centralizacija | Ne | Ne | Taip (per saugyklas) |
Pasirinkimas priklauso nuo komandos pageidavimų, priklausomybių tipo ir poreikio glaudžiai integruoti su Xcode. SPM tampa de facto standartu, ypač naujiems Swift projektams.