티스토리 뷰

Record 작업하면서 Carousel을 만들었는데, 많은 부분에서 쓰일 수 있을 것 같아서 커스텀 가능한 형태로 라이브러리를 만들게 됐다!

코코아팟 배포하는 방법

Pod Libary를 생성하기

  1. 터미널에서 작업할 디렉토리로 이동한다.
  2. pod lib create JWCarousel을 입력한다.
  3. 라이브러리 정보를 입력한다.
  4. 해당 정보를 입력하면, Xcode 프로젝트가 열린다. (안 열린다면 해당 디렉토리 이동해서 직접 열자)

코드 작성하기

  1. 아까 만든 Pod 프로젝트에서 코드를 작성한다.
  2. Pod/DevelopmentPods/JWCarousel/ReplaceMe.swift 파일을 수정해주면 된다. (접근제어 주의!)
  3. 나는 SwiftUI 프로젝트이기 때문에 UIKit으로 되어있는 데모를 수정해줘야했다.
    1. App Delegatedml UIHostingController을 이용해서 rootView 수정하기
    2. plist에서 Main Storyboard 정보 삭제하기
    3. Main Storyboard 삭제하기
    4. target iOS 버전 수정하기. (SwiftUI는 iOS 13부터 사용가능하다)
    5. Demo와 Pod target에 모두 적용해주자.

Pod Spec 수정하기

  1. 데모 프로젝트 최상단 혹은 Pods/Pod에 JSCarousle.podspec이라는 파일에 들어간다.
  2. 이미 엄청난 주석과 함께 적혀져 있겠지만, 문서를 보고 다시 작성하는게 마음 편할 것이다^^;;
    pod spec create [NAME|https://github.com/USER/REPO]
  3. 그냥 코드 지워줘도 되고, 터미널에서 새로 만들어도 된다. (나는 그냥 코드 지우고 다시 썼다)
  4. 내 pod spec이다.여기서 중요한 부분은 소스파일 위치! (기존 정보는 JWCarousel/이렇게 써져있지 않을거다! 여기 꼭 수정해주자)
  5. 공식 문서를 참고하여 작성하자
Pod::Spec.new do |spec|
  spec.name          = 'JWCarousel' # 프로젝트 이름
  spec.version       = '0.1.0'      # 버전
  spec.license       = { :type => 'MIT', :file => 'LICENSE' }    # 라이센스
  spec.homepage      = 'https://github.com/JIWON1923/JWCarousel' # 깃허브 링크
  spec.authors       = { 'Jiwon Lee' => 'zest1923@gmail.com' }   # 작성자
  spec.summary       = 'The JWCarousel library for SwiftUI provides a highly customizable carousel view for iOS apps.' # 라이브러리 소개
  spec.source        = { :git => 'https://github.com/JIWON1923/JWCarousel.git', :tag => spec.version } # 소스코드 위치
  spec.swift_version = '5.0'
  spec.ios.deployment_target  = '15.0'
  spec.source_files = 'JWCarousel/Classes/**/*' # 코드 파일 위치
end

 

 

Pod 검증하기

  1. 터미널에서 pod lib lint를 입력한다.
  2. 나는 오류가 발생했다.

  1. 오류 내용을 확인하고 하나씩 해결해주면 된다.error: extra trailing closure passed in call
  2. 나는 이런 오류가 발생했다. 당황하지 말고 Pod 프로젝트에 들어간다. (코드는 문제가 전혀 없었다)
    xcodebuild: Returned an unsuccessful exit code. You can use --verbose for more information.
  3. Pod이 저장된 프로젝트에 들어가보자.

나는 View+JWCarousel.swiftFramePreferenceKey+JWCarousel.swift를 팟이 인식하지 못해 생긴 문제였다. 
spec에 명시한 위치로 코드를 옮겨줘야한다. (Xcode에서 파일을 인식할 수 있도록 경로를 재설정해주자)

  1. 다시 pod lib lint 수행한다.

 

깃에 프로젝트 등록하기

  1. 프로젝트를 Push 해준다
git add .
git commit -m "커밋메시지"
git branch -M main
git remote add origin 주소.git
git push -u origin main
  1. tag를 push 해준다. (spec에 적은 version과 동일하게 적어준다)
git tag 0.1.0
git push origin 0.1.0

 

pod에 등록하기

  1. 명령어 입력
pod trunk register 이메일
  1. 이메일에서 확인하기
  2. 마지막! spec 푸시하기
pod trunk push JWCarousel.podspec

완성

근데 아직 코코아팟에 검색해도 나오지는 않는다!! 그래도 넘나 뿌___듯

'TIL' 카테고리의 다른 글

OAuth 너 뭔데 ??  (0) 2023.06.04
[자료구조] Swift로 Heap 구현하기  (0) 2023.03.23
01/24 [TIL] Swift, 백준 문제풀이  (2) 2023.01.24
01/23 TIL [ShortcutsZip, 알고리즘, Swift]  (0) 2023.01.24
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함