-
Notifications
You must be signed in to change notification settings - Fork 1
๐จ Swift Package Manager ๋ฅผ ์ฌ์ฉํด๋ณด์
Xcode 11 ๋ถํฐ ์ ํ์์ ๊ณต์์ผ๋ก ์ง์ํ๊ณ Xcode ์ ๋ด์ฅ๋ ํจํค์ง ๋งค๋์ ์ด๋ค.
์ฐ์ Swift Package Manager(SwiftPM) ๋ฅผ ์ฌ์ฉํด์ SnapKit ๋ฅผ ์ค์นํด๋ณด์
1๏ธโฃ [Targets] โ [General] โ [Frameworks, Libraries, and Embedded Content] โ [+]
2๏ธโฃ Add Package Dependency...
3๏ธโฃ ์ฌ์ฉํ๊ณ ์ถ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ฃผ์๋ฅผ ๊ธฐ์ ํ๋ค.(๊นํ๋ธ ์ฃผ์๋ฅผ ๊ธฐ์ ํด์ฃผ์๋ค.)
4๏ธโฃ ์ค์น ์ ์ํ๋ ๋ฒ์ , ๋ธ๋์น ๋ฐ ์ปค๋ฐ์ ์ค์ ํ ์ ์๋ค.
5๏ธโฃ ์ํ๋ package product ๋ฅผ ๊ณจ๋ผ์ [Finish]
SnapKit ์ด ์ ๋๋ก ์ค์น๋ ๊ฒ์ ํ์ธํ ์ ์์๋ค.
์ด๋ ๊ฒ SwiftPM ๋ฅผ ์ฌ์ฉํด๋ณด์๋ค. ์๊ฐ๋ณด๋ค ์ค์นํ๋ ๊ณผ์ ์ ์ฌ์ ๋ค.
๊ทธ๋ ๋ค๋ฉด ์ด๋ค SwiftPM ์ ์ฅ๋จ์ ๋ค์ด ์๋์ง ์์๋ณด์.
- package ๋ฅผ ์ถ๊ฐํ๊ธฐ ์ฝ๋ค. podfile ์ ๊ด๋ฆฌํ์ง ์์๋ ๋๋ค.
- ์จ๋ํํฐ์ CocoaPods ๊ณผ๋ ๋ฌ๋ฆฌ ํผ์คํธํํฐ ํด์ด๋ค. ์ถ๊ฐ์ ์ธ ์ค์น๊ฐ ํ์์๋ค.
- Xcode ์ฌ์ด๋๋ฐ์ ๋ช ํํ๊ฒ ํ์ํ๊ณ ํจํค์ง์ ํ์ฌ ๋ฒ์ ๋ ๋ณด์ฌ์ค๋ค.
- CocoaPods ๊ฐ ์์ฑํ๋ Pods/ ๋๋ ํ ๋ฆฌ์ ํด๋นํ๋ ๊ฒ์ด ์๋ค. SwiftPM ์ ์ฌ์ฉํ๋ฉด dependencies ๊ฐ ํ๋ก์ ํธ์ ํ์ ๋ฐ์ดํฐ ๋๋ ํ ๋ฆฌ(~/Library/Developer/Xcode/DerivedData/...) ๊น์์ด ์ ์ฅ๋ฉ๋๋ค.
- ํจํค์ง๋ฅผ ์ ๋ฐ์ดํธํ ๋ all or nothing ์ ์ ํ์ง๋ง ์ฃผ์ด์ง๋ค. ๋จ์ผ ํจํค์ง์ ๋ํ ๋ฒ์ ์ ์ ๋ฐ์ดํธ ํ ์ ์๋ค.
- SwiftPM ์ CocoaPods ์ ๊ฐ์ ์ปค๋ฎค๋ํฐ ๊ธฐ๋ฐ ๋๊ตฌ๋ณด๋ค ๋๋ฆฐ ํ๋ก์ธ์ค๋ค. CocoaPods๋ ์์ ์ฌํญ ๋ฐ ์๋ก์ด ๊ธฐ๋ฅ์ ์ํด ์ ๋ฒ์ ์ ๋น ๋ฅด๊ฒ ๋ฆด๋ฆฌ์ฆํ ์ ์์ง๋ง SwiftPM์ Xcode ๋ฆด๋ฆฌ์ฆ ์ผ์ ์ ๊ตฌ์๋ฉ๋๋ค.
- SwiftPM ์ ํ์ฌ Objective-C ์ Swift ๊ฐ ํผํฉ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ง์ํ์ง ์๋๋ค.
- SwiftPM ์ ํ์ฌ ์ด๋ฏธ์ง, ์คํ ๋ฆฌ๋ณด๋, ์์ฐ ์นดํ๋ก๊ทธ ๋ฑ๊ณผ ๊ฐ์ ๋ฆฌ์์ค ๋ฒ๋ค์ ์ง์ํ์ง ์์ต๋๋ค.
- ์๊ณ ๊ฐ๋จํ ํ๋ก์ ํธ์์ ๋ ํผ์ ๊ฐ๋ฐ์ ํ๊ณ dependencies ๋ฅผ ๋ค ์์ ํ๊ณ ์๋ค๋ฉด ์์ ๋จ์ ๋ค์ด ์ํฅ์ ๋ฏธ์น์ง ์๊ธฐ ๋๋ฌธ์ SwiftPM ์ ์ ์ฉํ๋ค.
- ํฌ๊ณ ๋ณต์กํ ํ์์ ์ ๊ฒฝ์ฐ CocoaPods ์ด ์ ํธ๋๋ค.
- ๊ทธ๋ผ์๋ SwiftPM ์ ๊ฐ๋ฅ์ฑ์ด ์๋ค. ์ธ๊ธํ ์ฃผ์ด์๋ค์ ์ฝ๊ฒ ํด๊ฒฐ๊ฐ๋ฅํ๋ค.(ํจํค์ง๋ณ ์ ๋ฐ์ดํธ ์ถ๊ฐ, linking ์ ์ํ ํจํค์ง๋ณ ํ์ผ ์ถ๊ฐ, ํ๋ก์ ํธ ๋ฃจํธ์ SwiftPM/ ๋๋ ํ ๋ฆฌ ์ ์งํ๋ ์ต์ ์ถ๊ฐ, ๋ฒ๋ค ๋ฆฌ์์ค ํฌํจ ํ์ฉ, Objective-C ์ Swift ํผํฉ ํ์ฉ ๋ฑ)