πŸ“¦ [iOS] CocoaPodsλ₯Ό ν™œμš©ν•œ iOS 라이브러리 μ„€μΉ˜ κ°€μ΄λ“œ

μ΄μ„œΒ·2023λ…„ 9μ›” 17일
1

πŸ“± iOS νŠΈλž™

λͺ©λ‘ 보기
1/2
post-thumbnail
post-custom-banner

κ°œμš”

μ•ˆλ…•ν•˜μ„Έμš” μ΄μ„œμž…λ‹ˆλ‹€πŸ₯³, μ˜€λŠ˜μ€ μ½”μ½”μ•„νŒŸ(CocoaPods)πŸ₯₯에 λŒ€ν•΄ μ•Œμ•„λ³΄λ €ν•΄μš”.

μ½”μ½”μ•„νŒŸμ€ iOS 및 macOS ν”„λ‘œμ νŠΈμ—μ„œ μ™ΈλΆ€ 라이브러리 및 쒅속성을 κ΄€λ¦¬ν•˜κΈ° μœ„ν•œ μ˜€ν”ˆ μ†ŒμŠ€ νŒ¨ν‚€μ§€ λ§€λ‹ˆμ €μ—μš”. μ½”μ½”μ•„νŒŸμ„ μ‚¬μš©ν•˜λ©΄ μ•„λž˜μ™€ 같은 이점을 얻을 수 μžˆμ–΄μš”.

  1. 쒅속성 관리: μ½”μ½”μ•„νŒŸμ„ μ‚¬μš©ν•˜λ©΄ λ‹€λ₯Έ κ°œλ°œμžκ°€ κ°œλ°œν•œ λΌμ΄λΈŒλŸ¬λ¦¬λ‚˜ ν”„λ ˆμž„μ›Œν¬λ₯Ό ν”„λ‘œμ νŠΈμ— μ‰½κ²Œ μΆ”κ°€ν•  수 μžˆμ–΄μš”. 이λ₯Ό 톡해 κ°œλ°œμžλŠ” μžμ‹ μ˜ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ κΈ°μ‘΄ 라이브러리λ₯Ό μ‚¬μš©ν•˜κ±°λ‚˜ ν”„λ‘œμ νŠΈ 간에 μ½”λ“œλ₯Ό κ³΅μœ ν•  수 μžˆμ–΄μš”.
  2. 버전 관리: λ‹€μ–‘ν•œ 라이브러리 및 ν”„λ ˆμž„μ›Œν¬μ˜ λΉŒλ“œ 섀정을 μžλ™μœΌλ‘œ μ²˜λ¦¬ν•  수 μžˆμ–΄μš”. κ°œλ°œμžλŠ” λ³΅μž‘ν•œ μ„€μ • νŒŒμΌμ„ 직접 관리할 ν•„μš” μ—†κ³ , μ½”μ½”μ•„νŒŸμ΄ ν”„λ‘œμ νŠΈ 섀정을 μ—…λ°μ΄νŠΈν•˜κ³  라이브러리λ₯Ό λΉŒλ“œν•΄μš”.
  3. μ„€μ • 및 λΉŒλ“œ μžλ™ν™”: μ½”μ½”μ•„νŒŸμ€ λΉŒλ“œ 섀정을 μžλ™μœΌλ‘œ μ²˜λ¦¬ν•΄μš”.
  4. Swift 및 Objective-C 지원: Swift와 Objective-Cλ₯Ό λͺ¨λ‘ μ§€μ›ν•˜λ©°, ν˜Όν•©ν•˜μ—¬ μ‚¬μš©ν•  μˆ˜λ„ μžˆμ–΄μš”. λ”°λΌμ„œ κΈ°μ‘΄ Objective-C ν”„λ‘œμ νŠΈλ₯Ό Swift둜 λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ν•˜λŠ” κ²½μš°μ—λ„ μ›ν™œν•˜κ²Œ 라이브러리λ₯Ό 관리할 수 μžˆμ–΄μš”.

μ‹œμž‘ν•˜κΈ°

gem μ„€μΉ˜ 확인

μ½”μ½”μ•„νŒŸμ„ μ‚¬μš©ν•˜κΈ° μœ„ν•΄μ„œλŠ” μš°μ„  우리의 λ§₯ 컴퓨터에 gem이 μ„€μΉ˜λ˜μ–΄ μžˆμ–΄μ•Όν•΄μš”. gem은 Ruby ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λ₯Ό μ‚¬μš©ν•˜μ—¬ RubyGem이라 λΆˆλ¦¬λŠ” νŒ¨ν‚€μ§€ λ˜λŠ” 라이브러리λ₯Ό κ΄€λ¦¬ν•˜λŠ” λ„κ΅¬μ—μš”. ν„°λ―Έλ„μ—μ„œ μ•„λž˜μ˜ λͺ…λ Ήμ–΄λ₯Ό 톡해 gem이 μ„€μΉ˜λ˜μ–΄ μžˆλŠ”μ§€ ν™•μΈν•˜κ³ , μ •μƒμ μœΌλ‘œ 버전이 ν‘œμΆœλ˜λŠ”μ§€ ν™•μΈν•΄μš”.

gem -v

μ„€μΉ˜

μ •μƒμ μœΌλ‘œ 버전이 ν‘œμΆœλ˜μ—ˆλ‹€λ©΄ 이제 μ½”μ½”μ•„νŒŸμ„ μ„€μΉ˜ν•˜κ³  μ—…λ°μ΄νŠΈν•΄μš”.

sudo gem install cocoapods
sudo gem udpate cocoapods

πŸš¨Β λ§Œμ•½ ERROR: While executing gem ... (Gem::FilePermissionError)와 같은 μ—λŸ¬κ°€ λ°œμƒλœλ‹€λ©΄, μ•„λž˜μ˜ 링크 μ£Όμ†Œλ₯Ό 톡해 ν•΄κ²°ν•΄λ³΄μ„Έμš”!

Macμ—μ„œ Gem::FilePermissionError μ—λŸ¬ λ°œμƒμ‹œ ν•΄κ²° 방법


ν”„λ‘œμ νŠΈ μ΄ˆκΈ°ν™”

이제 ν„°λ―Έλ„μ—μ„œ 우리의 ν”„λ‘œμ νŠΈλ‘œ μ΄λ™ν•œ λ‹€μŒ, μ•„λž˜μ˜ λͺ…령을 톡해 μ½”μ½”μ•„νŒŸ ν”„λ‘œμ νŠΈλ₯Ό μ„€μ •ν•΄μš”. μ•„λž˜μ˜ λͺ…λ Ήμ–΄λ₯Ό μ‹€ν–‰ν•˜λ©΄ Podfileμ΄λΌλŠ” 파일이 μƒμ„±λΌμš”. ν•΄λ‹Ή νŒŒμΌμ„ ν…μŠ€νŠΈ μ—λ””ν„°λ‚˜, xcodeμ—μ„œ μ—΄μ–΄ ν•„μš”ν•œ 라이브러리λ₯Ό μΆ”κ°€ν•΄μš”.

pod init

πŸš¨Β λ§Œμ•½ Gem::GemNotFoundException와 같은 μ—λŸ¬κ°€ λ°œμƒλœλ‹€λ©΄ μ•„λž˜μ˜ λͺ…λ Ήμ–΄λ₯Ό μž…λ ₯ ν›„ λ‹€μ‹œ μ‹œλ„ν•΄λ³΄μ„Έμš”!

sudo gem install -n /usr/local/bin cocoapods

라이브러리 μΆ”κ°€

이제 Profile 파일이 μ •μƒμ μœΌλ‘œ μƒμ„±λ˜μ—ˆλ‹€λ©΄, AlamofireλΌλŠ” λ„€νŠΈμ›Œν‚Ή 라이브러리λ₯Ό μΆ”κ°€ν•΄λ³Όκ²Œμš”. (μ•„λž˜μ˜ ν…μŠ€νŠΈμ—μ„œ target β€˜MyApp’ doλŠ” 우리의 ν”„λ‘œμ νŠΈ 이름을 λœ»ν•΄μš”. λ”°λΌμ„œ μ •μƒμ μœΌλ‘œ μ—¬λŸ¬λΆ„μ˜ ν”„λ‘œμ νŠΈ 이름이 λ°˜μ˜λ˜μ–΄μžˆλŠ”μ§€ ν™•μΈν•΄λ³΄μ„Έμš”.)

# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'

target 'MyApp' do
  # Comment the next line if you don't want to use dynamic frameworks
  use_frameworks!

  # Pods for MyApp
	pod 'Alamofire'

end

라이브러리 적용

λ§ˆμ§€λ§‰μœΌλ‘œ Podfile을 μˆ˜μ •μ„ μ™„λ£Œν–ˆμœΌλ©΄, 라이브러리λ₯Ό λ‹€μš΄λ‘œλ“œν•˜κ³  ν”„λ‘œμ νŠΈμ— μ•„λž˜μ˜ λͺ…λ Ήμ–΄λ₯Ό 톡해 μ—°κ²°ν•΄μš”.

pod install

μ•„λž˜μ˜ μ•ˆλ‚΄ 문ꡬ가 λ‚˜νƒ€λ‚¬λ‹€λ©΄ xcworkspaceλ₯Ό 톡해 ν”„λ‘œμ νŠΈλ₯Ό μ—΄μ–΄μ•Όλ§Œ μ„€μΉ˜ν•œ 라이브러리λ₯Ό μ‚¬μš©ν•  수 μžˆλ‹€λŠ” λœ»μ΄μ—μš”. ν˜„μž¬ μ‹€ν–‰ 쀑인 Xcodeλ₯Ό μ’…λ£Œν•΄μš”.

[!] Please close any current Xcode sessions and use `MyApp.xcworkspace` for this project from now on.

πŸš¨Β λ§Œμ•½ [!] Couldn't determine repo type for URL: https://cdn.cocoapods.org/: Permission bits for '/Users/μ‚¬μš©μžλͺ…/.netrc' should be 0600, but are 644와 같은 문ꡬ가 λ‚˜νƒ€λ‚¬λ‹€λ©΄ μ•„λž˜μ˜ λͺ…λ Ήμ–΄λ₯Ό μ‹€ν–‰ν•΄μ£Όκ³  λ‹€μ‹œ μœ„μ˜ λͺ…λ Ήμ–΄λ₯Ό μ‹€ν–‰ν•΄μ£Όμ„Έμš”.

chmod 600 ~/.netrc

이제 우리의 ν”„λ‘œμ νŠΈλ₯Ό μ•„λž˜μ˜ λͺ…λ Ήμ–΄λ₯Ό 톡해 Xcodeλ₯Ό μ‹€ν–‰ν•©λ‹ˆλ‹€.
open MyApp.xcworkspace

μ°Έμž˜ν–ˆμ–΄μš”

끝!

profile
πŸŽοΈπŸ’¨ Beep Beep
post-custom-banner

0개의 λŒ“κΈ€