์์กด์ฑ ๊ด๋ฆฌ๋๊ตฌ ์ฃผ์ ๊ธฐ๋ฅ
- Module
- ์์กด์ฑ์ ์๋ ค์ฃผ๋ ๋ฉํ๋ฐ์ดํฐ๋ก ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ด ๊ด๋ฆฌ๋จ
- Manifest
- ๋ช ์ธ์ ์ญํ
- Lock
- ์ค์น๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ฒ์ ๊ณผ ์์กด ๊ตฌ์กฐ๋ฅผ ๋ณด์ฌ์ค
- ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ค์น๋ ๋ค์ ์ ํ
- Repository
- ๋ชจ๋์ด ์ ์ฅ๋ ๊ณต๊ฐ, ๋ณดํต github
- Dependency Constraint
- ๋ชจ๋์ ํ์ฉ๋๋ ๋ฒ์ , ๋ณดํต Manifest ํ์ผ์ ์ ํ์ง
- Resolution Rule
- ๋ชจ๋์ ์ ํฉํ ๋ฒ์ ์ ์ค์นํด ์ค
๋๊ตฌ | ์ธํ | ๋น๋์๋ |
---|---|---|
--------------------- | ------ | ---- |
CocoaPods | ๊ฐํธํจ | ๋๋ฆผ |
Carthage | ๋ณต์กํจ | ๋น ๋ฆ |
Swift Package Manager | ๊ฐํธํจ | ๋๋ฆผ |
Cocoapods
- ๊ฐํธํจ
- ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น ํ ์ถ๊ฐ ์์ ์ด ์๋ค.
- Xcode ์ธํ ์ ์๋ํํด์ ์๊ฐ์ ์ ์ฝํ ์ ์๋ค.
- ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ชฉ๋ก์ด ์ค์ํ๋์ด ์๋ค.
- ๋๋ฒ๊น ์ด ํธ๋ฆฌํ๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ด๋ถ ์ฝ๋๋ฅผ ๋ณผ ์ ์๋ค.
pod install
Podfile.lock์ ๋ฆฌ์คํธ๋ ํ๋ค์ ๋ํด์ ์ง์ ๋ ๋ฒ์ ๋ง ๋ค์ด (์๋ก์ด ๋ฒ์ ์ฒดํฌํ์ง ์์)
Podfile.lock์ ๋ฆฌ์คํธ๋์ง ์์ ํ๋ค์ Podfile์ ๋ช ์๋ ๋ฒ์ ์กฐ๊ฑด์ผ๋ก ๊ฒ์ํ์ฌ ๋ค์ด๋ก๋
์ฆ, ๋๋ฃ์ ๋ฒ์ ์ ๋ง์ถ๊ธฐ ์ํด์๋ ํด๋น ๋ฉ์๋๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค.
pod update
Podfile.lock์ ํ์ธํ์ง ์๊ณ ์ต์ ๋ฒ์ ์ผ๋ก ์ ๋ฐ์ดํธ
์๋ ์๋ฆฌ
Podfile
๋ช ์ธ์
source "custom repo"
source "custom repo2"
platform: ios, '11.0' # ํ๋ซํผ ์ง์
inhibit_all_warnings! # library์์ ๋ฐ์ํ๋ warning ๋ฌด์
target 'Example' do
use_frameworks! # Static Library ๋์ , Framework๋ฅผ ์ฌ์ฉ
pod 'SnapKit', '~>5.0.0' # ๋ฒ์ ์ง์ : ์ต์ 5.0.0 ์ด์ 6.0.0 ๋ฏธ๋ง ์ฌ์ฉ
target 'ExampleTests' do # ์ค์ฒฉ๋จ
inherit! :search_paths
pod 'Quick'
pod 'Nimble'
end
end
pod 'SnapKit'
: ์ต์ ๋ฒ์ ์๋ฏธpod 'SnapKit', '5.0.1'
: ๊ตฌ์ฒด์ ๋ฒ์ > 0.1
: ์ด๊ณผ>= 0.1
: ์ด์< 0.1
: ๋ฏธ๋ง<= 0.1
: ์ดํ~> 0.1.2
: 0.1.2 ์ด์, 0.2 ๋ฏธ๋ง~> 0.1
: 0.1 ์ด์, 1.0 ๋ฏธ๋ง
ํน์ ๋ธ๋์น๋ฅผ ์ง์ ํด์ pod์ ์ถ๊ฐํ ์๋ ์๋ค.
๋ก์ปฌ (์ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ฐ๋ฐํ ๋ ์ฌ์ฉ)
pod 'Alamofire', :path => '~/Documents/Alamofire'
๋ง์คํฐ branch ๊ธฐ์ค
pod 'Alamofire', :git => '[address].git'
ํน์ branch ๊ธฐ์ค
pod 'Alamofire', :git => '[address].git', :branch => 'dev'
ํ๊ทธ ๊ธฐ์ค
pod 'Alamofire', :git => '[address].git', :tag => '3.1.1'
์ปค๋ฐ ๊ธฐ์ค
pod 'Alamofire', :git => '[address].git', :commit => '0f506fe12'
Carthage
- ์์จ์ฑ
- ์ค์ํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ชฉ๋ก ์์
- dependency๋ฅผ binaryy framework๋ก ๋น๋ํด ์ค
- ํ๋ก์ ํธ ์ธํ ์ ์ฌ์ฉ์ ๋ชซ
- ๋น๋ ์๋ ๋จ์ถ์ ์ํด ์ฃผ๋ก ์ฌ์ฉ
Swift Package Manager
- Apple์ด ๋ง๋ first party depdendency manager
- ๊ฐ์ฅ ํธ๋ฆฌํจ
- ๋๋ฒ๊น ํธ๋ฆฌ (์๋ณธ ์์ค ๋ณผ ์ ์์)
- ํ์ง๋ง ์ง์์ํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ด ๋ง์
- major ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋๋ถ๋ถ ์ง์