ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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 ์ ์šฉ๊ธฐ

     

    ๋Œ“๊ธ€

Designed by Tistory.