-
[iOS] Swift Package Manager (SPM) ์์ฑํ๊ธฐiOS 2023. 5. 16. 11:53
Swift Package Manager๋ก ํจํค์ง๋ฅผ ๋ง๋ค์ด์ ํ๋ก์ ํธ์ ์ถ๊ฐํด๋ณด๋ ค๊ณ ํฉ๋๋ค!
1. Package ์์ฑํ๊ธฐ
๋จผ์ Package๋ฅผ ๋ง๋ค์ด๋ณด๋๋ก ํ ๊ฒ์!
Package๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ํฐ๋ฏธ๋๋ก ๋ง๋๋ ๋ฐฉ๋ฒ๊ณผ Xcode์์ ์ง์ ๋ง๋๋ ๋ฐฉ์์ด ์๋๋ฐ,
์ ๋ Xcode๋ก ๋ง๋ค์ด๋ณด๋ ค๊ณ ํฉ๋๋ค.
Xcode > File > New > Package๋ฅผ ํด๋ฆญํด์ ํจํค์ง๋ฅผ ์์ฑํ ๊ฒ์.

๊ทธ๋ผ ์ด๋ ๊ฒ Package๊ฐ ์์ฑ์ด ๋ฉ๋๋ค.

2. Remote์ ์๋ ํจํค์ง ์ถ๊ฐํ๊ธฐ
์์์ ์์ฑ๋ ํจํค์ง๋ฅผ Xcode ํ๋ก์ ํธ์ ์ถ๊ฐํด๋ณผ๊ฑด๋ฐ์,
ํจํค์ง ์ ํจ์ฑ ํ์ธ์ ์ํด์ ๋ฉ์๋ ํ๋๋ฅผ ์ถ๊ฐํด๋ณผ๊ฒ์!

ํจํค์ง๋ฅผ remote์ ์ฌ๋ ค์ remote์ ์๋ ํจํค์ง๋ฅผ ์ถ๊ฐํ ์๋ ์๊ณ , ์ง๊ธ ๋ง๋ local์ ์๋ ํจํค์ง๋ฅผ ์ถ๊ฐํ ์๋ ์์ต๋๋ค!
๋จผ์ remote์ ์๋ ํจํค์ง๋ฅผ ์ถ๊ฐํด๋ณด๊ฒ ์ต๋๋ค.
Github์ ํด๋น ํจํค์ง๋ฅผ ๋ ํฌ๋ก ์ ๋ก๋ํฉ๋๋ค.

๊ทธ๋ฆฌ๊ณ ๋ฒ์ ์ ๋ฌ๊ณ release๋ฅผ ํฉ๋๋ค!


์ด์ ์ ํจํค์ง๋ฅผ ํ๋ก์ ํธ์ ์ถ๊ฐํด๋ณผ๊ฒ์.
MyProject๋ฅผ ์์ฑํ์ต๋๋น.
ํ๋ก์ ํธ์ Package Dependencies๋ก ๋ค์ด๊ฐ์ ๋ฐฉ๊ธ ์ฌ๋ฆฐ ํจํค์ง๋ฅผ ์ถ๊ฐํด๋ณผ๊ฒ์!

+ ๋ฒํผ์ ํด๋ฆญํด์ ๊นํ๋ธ URL์ ์ ๋ ฅํด์ค๋๋ค.


ํจํค์ง๊ฐ ์ถ๊ฐ๋์ด์!

์ ์์ ์ผ๋ก import๋ ๋๊ณ , ์๊น ์ถ๊ฐํ ๋ฉ์๋๋ ์ ์์ ์ผ๋ก ํธ์ถ์ด ๋๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค!

3. Local์ ์๋ ํจํค์ง ์ถ๊ฐํ๊ธฐ
๋ก์ปฌ์ ์๋ ํจํค์ง๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ ๊ฐ๋จํฉ๋๋ค!
๊ธฐ์กด์ remote์์ ์ถ๊ฐํ ํจํค์ง๋ฅผ ์ ๊ฑฐํ๊ณ ,
ํ๋ก์ ํธ์ Package Descriptions๋ก ๋ค์ ๋์๊ฐ์, Add Local์ ํด๋ฆญํฉ๋๋ค.

์๊น ์์ฑํ MyPackage๋ฅผ ์ถ๊ฐํด์ค๋๋ค!

์ด๋ ๊ฒ Packages ๋๋ ํ ๋ฆฌ๊ฐ ์์ฑ๋๊ณ , MyPackage๊ฐ ์ถ๊ฐ๋ฉ๋๋ค!
์ด์ด์ ํ๋ก์ ํธ ํ๊ฒ > Build Phases์ ๋ค์ด๊ฐ์, Link Binary With Libraries์์ + ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.

ํ๋ก์ ํธ์์ ์ฐธ์กฐํ๊ณ ์๋ Package ๋ชฉ๋ก์ ํ์ธํ ์ ์๋๋ฐ์, ์ฌ๊ธฐ์ ์ฐ๋ฆฌ๊ฐ ์ถ๊ฐํ Package๋ฅผ ์ ํํด์ ์ถ๊ฐํฉ๋๋ค!

Link Binary With Libraries์ ํจํค์ง๊ฐ ์ถ๊ฐ๋์๊ณ , ์ผ์ชฝ์๋ Products, Frameworks ๋๋ ํ ๋ฆฌ๊ฐ ์๋ก ์ถ๊ฐ๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.

import๋ ์ ์์ ์ผ๋ก ๋๊ณ , ์ถ๊ฐํ ๋ฉ์๋ ๋ํ ์ ์์ ์ผ๋ก ํธ์ถ๋๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค!

Reference
Swift Package Manager ์ ์ฉ๊ธฐ
'iOS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ