header-img
Info :

1. bitbucket์— ๋‘ ๊ฐœ์˜ repository๊ฐ€ ํ•„์š”ํ•จ.

  1. ์‹ค์ œ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ์‚ฌ์šฉํ•  ์ฝ”๋“œ ์ €์žฅํ•  remote repo
  2. 1๋ฒˆ์—์„œ ์˜ฌ๋ฆฐ cocoapod ํ”„๋ ˆ์ž„์›Œํฌ์˜ ์ŠคํŽ™์„ ๊ด€๋ฆฌํ•  remote repo

๋น„ํŠธ๋ฒ„ํ‚ท์— ๋‘ ๊ฐœ ๋‹ค private์œผ๋กœ ๋งŒ๋“ค๊ณ  git ์ฃผ์†Œ ์ €์žฅํ•ด๋‘๊ธฐ.

 

2. Pod์œผ๋กœ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋งŒ๋“ค๊ธฐ

  • cmd ์ฐฝ์—์„œ ์ฝ”์ฝ”์•„ํŒŸ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๋งŒ๋“ค ํด๋”๋กœ ์ด๋™.
  • pod lib create [ํ”„๋ ˆ์ž„์›Œํฌ๋ช…] ์ž…๋ ฅ ํ›„ ์•„๋ž˜ ์ฝ”๋“œ ์ž…๋ ฅ
* What platform do you want to use?
์‚ฌ์šฉํ•  ํ”Œ๋žซํผ? -> iOS ์„ ํƒ

* What language do you want to use??
์‚ฌ์šฉํ•  ์–ธ์–ด? -> Swift ์„ ํƒ

* Would you like to include a demo application with your library?
๋ฐ๋ชจ ํ”„๋กœ์ ํŠธ ๋ผ์›Œ์„œ ๋นŒ๋“œํ• ๊ฑด์ง€? -> ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ˆ˜์ •ํ•  ๋•Œ๋งˆ๋‹ค ํ…Œ์ŠคํŠธ๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— yes๋กœ ์„ค์ •.
yes๋กœ ์„ค์ •ํ•ด๋‘๊ณ  ๋”ฐ๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„๋„ ๊ดœ์ฐฎ์Œ. 

* Which testing frameworks will you use?
์œ ๋‹› ํ…Œ์ŠคํŠธ์šฉ ํ”„๋ ˆ์ž„์›Œํฌ ์“ธ๊ฑฐ๋ƒ๊ณ  ๋ฌป๋Š”๊ฒŒ Quick ๋ˆ„๋ฅด๋ฉด ์—๋Ÿฌ๋‚˜์„œ.. None์œผ๋กœ ์„ค์ •

* Would you like to do view based testing?
yes๋กœ ์„ค์ •ํ•˜๋ฉด ๋ทฐ ํ…Œ์ŠคํŠธ์šฉ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์„ค์น˜๋จ. ๊ทธ๋Ÿฌ๋‚˜ ๊ตณ์ด ์•ˆ ํ•ด๋„ ๋˜๋Š” ์„ค์ •์ด๋ฏ€๋กœ No๋กœ ์„ค์ •
  • ์œ„์˜ ๋ฌธ๋‹ต๊นŒ์ง€ ์™„๋ฃŒํ•˜๋ฉด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์šฉ ํ”„๋กœ์ ํŠธ๊ฐ€ ๋ฐ”๋กœ ์—ด๋ฆผ. ๋ฐ”๋กœ ์—ด๋ฆฌ์ง€ ์•Š๋Š”๋‹ค๋ฉด finder์—์„œ ํ”„๋กœ์ ํŠธ๊ฐ€ ์ƒ์„ฑ๋œ ์œ„์น˜๋กœ ๊ฐ€์„œ Example > ํ”„๋ ˆ์ž„์›Œํฌ๋ช….xcworkspace ์˜คํ”ˆ.
  • ํŒŸ ์ˆ˜์ •ํ•  ์ค€๋น„ ์™„๋ฃŒ. ์œ„์—์„œ ์—ฐ ์›Œํฌ์ŠคํŽ˜์ด์Šค๋ฅผ ๋นŒ๋“œํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋‚  ์ˆ˜ ์žˆ๋Š”๋ฐ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์•„๋‹Œ ๋ฐ๋ชจ ํ”„๋กœ์ ํŠธ์—๋งŒ code signing ๋ถ€๋ถ„์—์„œ ์„œ๋ช…์„ ํ•ด์ฃผ๊ฑฐ๋‚˜ target iOS version์„ ํ†ต์ผํ•ด์ฃผ๋ฉด ํ•ด๊ฒฐ๋จ. ๋ฒ„์ „์€ Targets์— ๋Œ€ํ•ด์„œ๋„ ๋‹ค ํ†ต์ผํ•ด์ฃผ์–ด์•ผ ํ•จ.

์ฃผ์˜์ 

  • framework์˜ info.plist๋Š” ๊นƒ์— ์˜ฌ๋ผ๊ฐ€๋”๋ผ๋„ ์ปจ์Šˆ๋จธ ์ธก์—์„œ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ installํ•  ๋•Œ ๋ฐ˜์˜๋˜์ง€ ์•Š์Œ. ๋”ฐ๋ผ์„œ ๋”ฐ๋กœ info.plist์˜ ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•  ์ผ์ด ์žˆ๋‹ค๋ฉด ์ปจ์Šˆ๋จธ ์ธก์˜ info.plist์— key-value ๊ฐ’์„ ๋„ฃ์–ด์ฃผ๋„๋ก ๊ฐ€์ด๋“œ์— ์ถ”๊ฐ€ํ•ด์•ผ ํ•จ. ์ ‘๊ทผ์€ ๊ฐ€๋Šฅํ•จ. (๋‹ค๋ฅธ ํŽ˜์ด์ง€์— ๊ธฐ์ˆ )

๋งŒ๋“ค์–ด์ง„ ๋‹ค๋ฅธ ํŒŒ์ผ

  • ํ”„๋กœ์ ํŠธ ํด๋” > _Pods.xcodeproj : ํ”„๋ ˆ์ž„์›Œํฌ ๋‚ด ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ์ ํŠธ. cocoapod podspec meta data๋Š” ์ˆ˜์ •ํ•  ์ˆ˜ ์—†์Œ.
  • ํ”„๋กœ์ ํŠธ ํด๋” > Example > ํ”„๋ ˆ์ž„์›Œํฌ๋ช….xcodeproj : ๋ฐ๋ชจ ํ”„๋กœ์ ํŠธ ์ฝ”๋“œ์™€ cocoapod podspec meta data๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Œ.
  • ํ”„๋กœ์ ํŠธ ํด๋” > Example > ํ”„๋ ˆ์ž„์›Œํฌ๋ช….xcworkspace : ํ”„๋ ˆ์ž„์›Œํฌ ๋‚ด ์ฝ”๋“œ, ๋ฐ๋ชจ ํ”„๋กœ์ ํŠธ ์ฝ”๋“œ, cocoapod podspec meta data ๋ชจ๋‘ ์ˆ˜์ • ๊ฐ€๋Šฅํ•œ ์›Œํฌ์ŠคํŽ˜์ด์Šค.
  • ํ”„๋กœ์ ํŠธ ํด๋” > ํ”„๋ ˆ์ž„์›Œํฌ๋ช… ํด๋” > Classes ํด๋” : ํ”„๋ ˆ์ž„์›Œํฌ์— ํฌํ•จ๋˜์–ด์•ผ ํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ์ด ํด๋” ๋‚ด์— ๋“ค์–ด์žˆ์Œ.

 

3. podspec ์ˆ˜์ •ํ•˜๊ธฐ

์œ„์—์„œ ์›Œํฌ์ŠคํŽ˜์ด์Šค ์—ด๊ณ  hierarchy ์ฐฝ์—์„œ ํ”„๋ ˆ์ž„์›Œํฌ๋ช… > Podspec Metadata > ํ”„๋ ˆ์ž„์›Œํฌ๋ช….podspec ์„ ํƒ

์ฃผ์„์„ ๋‹ค ์ œ์™ธํ•˜๋ฉด ํŒŸ ์ŠคํŽ™ ํŒŒ์ผ์ด ์•„๋ž˜์™€ ๊ฐ™์„ ๊ฒƒ์ž„. podspec ์–ธ์–ด๋Š” Ruby๋กœ ์ž‘์„ฑ๋˜์–ด ์žˆ์œผ๋ฉฐ ์‹ ๊ฒฝ์จ์ค˜์•ผ ํ•  ๋ถ€๋ถ„์€ ์•„๋ž˜์™€ ๊ฐ™์Œ.

  • s.name : ํ”„๋ ˆ์ž„์›Œํฌ ์ด๋ฆ„
  • s.version : ํ”„๋ ˆ์ž„์›Œํฌ์˜ ๋ฒ„์ „์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ถ€๋ถ„. ๋ฒ„์ „์ด ์˜ฌ๋ผ๊ฐˆ ๋•Œ๋งˆ๋‹ค ๊ผญ ์ด ๋ถ€๋ถ„์„ ์ˆ˜์ •ํ•ด์ฃผ๊ณ  ๋นŒ๋“œํ•ด์ฃผ์–ด์•ผ ํ•จ.
  • s.summary : ์š”์•ฝ
  • s.description : ์„ค๋ช…
  • s.source : s.source์˜ :git => '์ฃผ์†Œ'์— 1๋ฒˆ์—์„œ ๋งŒ๋“ค์—ˆ๋˜ ์‹ค์ œ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ์‚ฌ์šฉํ•  ์ฝ”๋“œ ์ €์žฅํ•  remote repo์˜ ์ฃผ์†Œ๋ฅผ ๋„ฃ์–ด์คŒ.
  • s.ios.deployment_target : ์ด ํ”„๋ ˆ์ž„์›Œํฌ์˜ ํƒ€๊ฒŸ iOS ๋ฒ„์ „์„ ์ž‘์„ฑ
  • ๋‚˜๋จธ์ง€ ์š”์†Œ๋Š” ๊ตณ์ด ๋‹น์žฅ ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š์•„๋„ ๋ ๋“ฏ. ๊ทธ๋ฆฌ๊ณ  s.private์„ true๋กœ ์„ค์ •ํ•˜๋ฉด ๋‚ด๋ถ€ ์ฝ”๋“œ๊ฐ€ closed source๊ฐ€ ๋œ๋‹ค๊ณ  ํ•ด์„œ ์ˆ˜์ •ํ•ด๋ดค๋Š”๋ฐ s.private์€ ์“ธ ์ˆ˜ ์—†๋Š” ํ‚ค์›Œ๋“œ์ž„...
Pod::Spec.new do |s|
  s.name             = 'ํ”„๋ ˆ์ž„์›Œํฌ๋ช…'
  s.version          = '๋ฒ„์ „ ์ •๋ณด'
  s.summary          = 'A short description of ํ”„๋ ˆ์ž„์›Œํฌ๋ช….'

  s.description      = <<-DESC
TODO: Add long description of the pod here.
                       DESC

  s.homepage         = 'https://github.com/์‚ฌ์šฉ์ž'
  # s.screenshots     = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2'
  s.license          = { :type => 'MIT', :file => 'LICENSE' }
  s.author           = { '์‚ฌ์šฉ์ž๋ช…' => '์‚ฌ์šฉ์ž ์ด๋ฉ”์ผ ์ฃผ์†Œ' }
  s.source           = { :git => 'ํ”„๋ ˆ์ž„์›Œํฌ ์‹ค์ œ ์ฝ”๋“œ๊ฐ€ ์žˆ๋Š” ๊นƒ ์ฃผ์†Œ', :tag => s.version.to_s }
  # s.social_media_url = 'https://twitter.com/<TWITTER_USERNAME>'

  s.ios.deployment_target = '10.0'

  # incorrect usage!!!
  # s.private = true

  s.source_files = 'ํ”„๋ ˆ์ž„์›Œํฌ๋ช…/Classes/**/*'

  # s.public_header_files = 'Pod/Classes/**/*.h'
  # s.frameworks = 'UIKit', 'MapKit'
  # s.dependency 'AFNetworking', '~> 2.3'
end

 

4. ํ”„๋ ˆ์ž„์›Œํฌ ์ฝ”๋“œ ์ˆ˜์ •

2๋ฒˆ์—์„œ ์—ฐ ์›Œํฌ์ŠคํŽ˜์ด์Šค์—์„œ hierarchy ์ฐฝ์—์„œ Pods > Development Pods > ReplaceMe.swift ํŒŒ์ผ์˜ ํŒŒ์ผ๋ช…์„ ์ˆ˜์ •ํ•˜๊ณ  ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•ด์„œ ํ”„๋ ˆ์ž„์›Œํฌ ์ฝ”๋“œ๋ฅผ ๋„ฃ๊ฑฐ๋‚˜ ReplaceMe.swift ํŒŒ์ผ ์šฐํด๋ฆญ > New File > Swift File > ์œ„์น˜๋ฅผ ํ”„๋ ˆ์ž„์›Œํฌ๋ช…, Classes ํด๋”๊นŒ์ง€ ์ด๋™ํ•œ ํ›„ Create์„ ๋ˆŒ๋Ÿฌ์ฃผ์–ด์•ผ ํ•จ.

ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ์‚ฌ์šฉํ•  ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ–ˆ๋‹ค๋ฉด ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๋Š” ๋ถ€๋ถ„์€ hierarchy ์ฐฝ์—์„œ ํ”„๋ ˆ์ž„์›Œํฌ๋ช… ์„ ํƒ > Example for ํ”„๋ ˆ์ž„์›Œํฌ๋ช… ํด๋” > ViewController.swift ํŒŒ์ผ์—์„œ ์ˆ˜์ •ํ•ด์ฃผ๊ณ  ๋นŒ๋“œํ•ด์ฃผ๋ฉด ๋จ.

 

5. ํ”„๋ ˆ์ž„์›Œํฌ ๊นƒ์— ์˜ฌ๋ฆฌ๊ธฐ

  1. cmd ์ฐฝ์—์„œ pod lib create ํ–ˆ๋˜ ํด๋” ์œ„์น˜๋กœ ์ด๋™ (ํ”„๋ ˆ์ž„์›Œํฌ ํ”„๋กœ์ ํŠธ ์žˆ๋Š” ์œ„์น˜๋กœ ์ด๋™)
  2. git status : ๋ณ€๊ฒฝ์‚ฌํ•ญ ํ™•์ธ
  3. git add . : ๋ชจ๋“  ํŒŒ์ผ ๊นƒ ํŠธ๋ž˜ํ‚น์— ์ถ”๊ฐ€
  4. git commit -m “์ปค๋ฐ‹ ๋ฉ”์„ธ์ง€” : ์œ„์—์„œ ์ถ”๊ฐ€ํ•œ ํŒŒ์ผ๋“ค ์ปค๋ฐ‹
  5. git tag ๋ฒ„์ „๋ช… : ์œ„์˜ ์ปค๋ฐ‹ํ•œ ๊ฒƒ๊นŒ์ง€ ํƒœ๊ทธ ์„ค์ •ํ•œ๋‹ค๋Š” ์˜๋ฏธ. ๋ฒ„์ „ ์ปจํŠธ๋กค ์šฉ๋„ ex) git tag 0.1.0
  6. git remote add origin git์ฃผ์†Œ : ์—ฌ๊ธฐ์˜ git์ฃผ์†Œ๋Š” 1๋ฒˆ์—์„œ ๋งŒ๋“ค์—ˆ๋˜ ์‹ค์ œ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ์‚ฌ์šฉํ•  ์ฝ”๋“œ ์ €์žฅํ•  remote repo์˜ ์ฃผ์†Œ๋ฅผ ๋„ฃ์–ด์คŒ.
  7. git push origin master ๋ฒ„์ „๋ช… : ํ˜„์žฌ master ๋ธŒ๋žœ์น˜๋„ push, ๋ฒ„์ „ ํƒœ๊ทธ๋„ pushํ•œ๋‹ค๋Š” ์˜๋ฏธ.

 

6. Pod Spec Repo ๋งŒ๋“ค๊ธฐ

  1. cmd ์ฐฝ ์—ด๊ธฐ
  2. pod repo add [REPO_NAME] [๊นƒ ์ฃผ์†Œ] : REPO_NAME์€ Spec repo๋กœ ์‚ฌ์šฉํ•  ์ด๋ฆ„ ์•„๋ฌด๊ฑฐ๋‚˜ ์ง€์–ด์ฃผ๋ฉด ๋˜๊ณ  ๊นƒ ์ฃผ์†Œ๋Š” 1๋ฒˆ์—์„œ ๋งŒ๋“ค์—ˆ๋˜ cocoapod ํ”„๋ ˆ์ž„์›Œํฌ์˜ ์ŠคํŽ™์„ ๊ด€๋ฆฌํ•  remote repo์˜ ์ฃผ์†Œ๋ฅผ ๋„ฃ์–ด์คŒ.
  3. cd ~/.cocoapods/repos
  4. cd [REPO_NAME] : 2๋ฒˆ์—์„œ ๋งŒ๋“  ํด๋”๋กœ ์ด๋™
  5. pod repo push [REPO_NAME] [.podspec ํŒŒ์ผ์˜ ๊ฒฝ๋กœ] : REPO_NAME์€ 2๋ฒˆ์—์„œ ๋„ฃ์–ด์ค€ ์ด๋ฆ„์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉด ๋จ. .podspec ํŒŒ์ผ์˜ ๊ฒฝ๋กœ๋Š” pod lib create๋กœ ๋งŒ๋“  ํด๋”๋กœ ์ด๋™ํ•œ ํ›„ ํ”„๋ ˆ์ž„์›Œํฌ๋ช….podspec ํŒŒ์ผ ์šฐํด๋ฆญ ํ›„ option ๋ˆ„๋ฅด๊ณ  ๊ฒฝ๋กœ ์ด๋ฆ„์„ ๋ณต์‚ฌ ํด๋ฆญ. ๊ทธ ํ›„ cmd ์ฐฝ์—์„œ ๋ถ™์—ฌ์ฃผ๋ฉด ๋จ. ์ด ๋ช…๋ น์–ด๊ฐ€ master branch๋ฅผ ๊ฐ์ง€ํ•ด์„œ spec์— .podspec ํŒŒ์ผ์˜ s.version์— ๋งž์ถฐ์„œ spec์„ ์ž๋™์œผ๋กœ ์ €์žฅํ•ด์ค„ ๊ฒƒ์ž„.
    1. ๋งŒ์•ฝ ํ˜„์žฌ ๋ธŒ๋žœ์น˜ ์ด๋ฆ„์ด master๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด ๋ธŒ๋žœ์น˜๋ช… ๋ณ€๊ฒฝ์ด ํ•„์š”ํ•จ. git branch -m ์ด์ „_๋ธŒ๋žœ์น˜_name master๋กœ ๋ธŒ๋žœ์น˜ ์ด๋ฆ„ ๋ณ€๊ฒฝ.
    2. ๋งŒ์•ฝ remote project๊ฐ€ ๋น„์–ด์žˆ์–ด์„œ ๋ธŒ๋žœ์น˜ ๊ด€๋ จ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋ฉด ๋นˆ ์ปค๋ฐ‹์„ ์ผ๋‹จ pushํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋ฉด ํ•ด๊ฒฐ๋จ. git commit --allow-empty -m "๋ฉ”์„ธ์ง€"๋กœ empty ์ปค๋ฐ‹์„ ํ•ด์ฃผ๊ณ  git push origin ์‹คํ–‰.

 

7. ํ”„๋ ˆ์ž„์›Œํฌ ์‚ฌ์šฉ

  1. ํ”„๋กœ์ ํŠธ cmd ์ฐฝ์—์„œ open
  2. pod init
  3. 2๋ฒˆ์œผ๋กœ ์ƒ์„ฑ๋œ podfile์— pod "ํ”„๋ ˆ์ž„์›Œํฌ_NAME", :git => "git_์ฃผ์†Œ", :tag => '๋ฒ„์ „(ex: 0.0.0)' ์ถ”๊ฐ€. git ์ฃผ์†Œ๋Š” spec ์ฃผ์†Œ๊ฐ€ ์•„๋‹Œ ์‹ค์ œ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ์‚ฌ์šฉํ•  ์ฝ”๋“œ ์ €์žฅํ•œ remote repo์˜ ์ฃผ์†Œ๋ฅผ ๋„ฃ์œผ๋ฉด ๋จ.
  4. pod install

 

8. ํ”„๋ ˆ์ž„์›Œํฌ ์—…๋ฐ์ดํŠธ

  1. ํ”„๋ ˆ์ž„์›Œํฌ ์›Œํฌ์ŠคํŽ˜์ด์Šค์—์„œ ์ฝ”๋“œ ์ˆ˜์ •
  2. ํ”„๋ ˆ์ž„์›Œํฌ ํ”„๋กœ์ ํŠธ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ git์— ๋ฐ˜์˜ํ•ด์ฃผ์–ด์•ผ ํ•จ.
    1. ํ”„๋ ˆ์ž„์›Œํฌ ํ”„๋กœ์ ํŠธ๊ฐ€ ์žˆ๋Š” ๊ณณ์—์„œ cmd open
    2. git add .
    3. git commit -m "update: version 0.0.0"
    4. git tag 0.0.0
    5. git push origin master 0.0.0
  3. cocoapod spec์ด ์žˆ๋Š” ํด๋”๋กœ ์ด๋™ ํ›„ cmd ์—ด๊ณ  pod repo push [REPO_NAME] [.podspec ํŒŒ์ผ์˜ ๊ฒฝ๋กœ]
  4. ์ด ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋กœ ๊ฐ€์„œ tag ๋ณ€๊ฒฝ ํ›„ pod update ์ˆ˜ํ–‰

 

9. ํ”„๋ ˆ์ž„์›Œํฌ ํŒŒ์ผ ๋”ฐ๋กœ ๋นผ๊ธฐ

  • ๋ฐ๋ชจ ํ”„๋กœ์ ํŠธ๋ฅผ ํฌํ•จํ•ด์„œ ๋งŒ๋“ค๊ณ  ๋นŒ๋“œํ•ด๋ณธ ๊ฒฝ์šฐ
    • ๋ฐ๋ชจ ํ”„๋กœ์ ํŠธ์˜ hierarchy ์ฐฝ์—์„œ Pods > Products > ํ”„๋ ˆ์ž„์›Œํฌ ์šฐํด๋ฆญ > show in finder ์„ ํƒ > ํ”„๋ ˆ์ž„์›Œํฌ ํด๋” ์ถ”์ถœ
  • ์•„๋‹Œ ๊ฒฝ์šฐ
    • 7๋ฒˆ์„ ํ†ตํ•ด ํ”„๋ ˆ์ž„์›Œํฌ ์‚ฌ์šฉํ•˜๊ณ  hierarchy ์ฐฝ์—์„œ Pods > Products > ํ”„๋ ˆ์ž„์›Œํฌ ์šฐํด๋ฆญ > show in finder ์„ ํƒ > ํ”„๋ ˆ์ž„์›Œํฌ ํด๋” ์ถ”์ถœ

 

10. ํ”„๋ ˆ์ž„์›Œํฌ ๋ฐฐํฌ ์„ ํƒ์ง€

cocoapod ์ž์ฒด๊ฐ€ open source ๋ฐฐํฌ ํˆด์ž„. ๋”ฐ๋ผ์„œ ๋‚ด๋ถ€ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ๋น„๊ณต๊ฐœํ•˜๋ฉด์„œ ์ฝ”๋“œ๋ฅผ ๋ฐฐํฌํ•  ์ˆ˜๋Š” ์—†์Œ. ๋‚ด๋ถ€ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ๊ณต๊ฐœํ•˜๋ฉด์„œ ์ฝ”๋“œ๋ฅผ ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ์‹์—๋Š” ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ์Œ.

  1. ์ผ๋ฐ˜์ ์œผ๋กœ cocoaPod์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์ธ ๋‚ด๋ถ€ ์ฝ”๋“œ์†Œ์Šค๋ฅผ public remote repository์— ์˜ฌ๋ฆฌ๊ณ  trunk๋กœ spec(๋ฒ„์ „ ๊ด€๋ฆฌ)์„ ๋ฐฐํฌํ•˜๋Š” ๊ฒƒ
  2. ๋‚ด๋ถ€ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ private remote repository์— ์˜ฌ๋ฆฌ๊ณ  spec ๋ฐฐํฌ๋„ private remote repository์— ์˜ฌ๋ฆฌ๋Š” ๊ฒƒ.
  3. ๋‚ด๋ถ€ ์†Œ์Šค ์ฝ”๋“œ๋Š” ๋น„๊ณต๊ฐœ์ง€๋งŒ ์ฝ”๋“œ๋ฅผ ๋ฐฐํฌํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ํ”„๋ ˆ์ž„์›Œํฌ ์ž์ฒด๋ฅผ ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ์‹

์ฒซ ๋ฒˆ์งธ ๋ฐฉ์‹์€ ์ด ์†Œ์Šค ์ž์ฒด์— ๊ถŒํ•œ์ด ์žˆ๋Š” ์‚ฌ๋žŒ์ด๋“ , ์—†๋Š” ์‚ฌ๋žŒ์ด๋“  ๋ชจ๋‘ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋‘ ๋ฒˆ์งธ ๋ฐฉ์‹์€ ๋ฐฐํฌ์ž ์ชฝ์—์„œ ์„ ์ •ํ•œ ์‚ฌ๋žŒ์—๊ฒŒ๋งŒ ์ด pod lib์„ ๋‹ค์šด๋ฐ›์„ ์ˆ˜ ์žˆ๊ฒŒ ํ•˜์—ฌ ๋‚ด๋ถ€ ์†Œ์Šค ์ฝ”๋“œ ์ž์ฒด๋Š” ๊ณต๊ฐœ์ง€๋งŒ ๋ชจ๋“  ์‚ฌ๋žŒ์—๊ฒŒ public ํ•˜์ง€๋Š” ์•Š์Œ. ๋งˆ์ง€๋ง‰ ๋ฐฉ๋ฒ•์€ ์ปจ์Šˆ๋จธ๊ฐ€ pod์„ ํ†ตํ•ด ๋ฐ›๋Š” ๋Œ€์ƒ์ด (์•ž ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•) ํ”„๋ ˆ์ž„์›Œํฌ์˜ ์†Œ์Šค ์ฝ”๋“œ๊ฐ€ ์•„๋‹ˆ๊ณ  ํ”„๋ ˆ์ž„์›Œํฌ ๊ทธ ์ž์ฒด์ž„. ๊ฒฐ๊ณผ๋ฌผ์€ ์•„๋ž˜ ๊ทธ๋ฆผ์„ ๋ณด๋ฉด ์ฐจ์ด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Œ.

ํ”„๋ ˆ์ž„์›Œํฌ์˜ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๊ณต์œ  ํ”„๋ ˆ์ž„์›Œํฌ ์ž์ฒด๋ฅผ ๊ณต์œ 
ํ—ค๋”์™€ .c ํŒŒ์ผ์„ ๋ณด๋ฉด ๋‚ด๋ถ€ ์ฝ”๋“œ๊ฐ€ ๋‹ค ๊ณต๊ฐœ๋˜์–ด ์žˆ์Œ. ํ”„๋ ˆ์ž„์›Œํฌ ์ž์ฒด๋กœ ๊ณต์œ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ™•์ธํ•  ์ˆ˜ ์—†์Œ.

 

11. ์ฐธ๊ณ 

๋”๋ณด๊ธฐ
CS/iOS, Swift