develop

Create Cocoapods 코코아팟 라이브러리 만들기 본문

Library

Create Cocoapods 코코아팟 라이브러리 만들기

pikachu987 2021. 3. 13. 16:35
반응형

코코아팟 라이브러리 만들기 가이드: guides.cocoapods.org/making/making-a-cocoapod.html

 

CocoaPods Guides

CocoaPods is fully open-sourced, so it depends on community contributions to get better. If you're looking to start working on CocoaPods, this is the place to start.

guides.cocoapods.org

라이브러리 프로젝트 만들기

터미널에서 

pod lib create [라이브러리명] 을 입력을 한다.

플랫폼을 물어보는데 iOS라고 입력을 하고

언어를 물어보는데 Swift라고 입력을 했다.

그리고 데모 앱을 만들건지 물어보는데 Yes라고 입력을 하고

어떤 테스트 프레임워크를 사용할지 물어본다. None라고 입력을 하겠다

뷰 기반 테스트를 할건지 물어봐서 No라고 입력을 하면

 

라이브러리 프로젝트가 생성이 되고 xCode가 열린다.

 

위와 같이 파일 구조가 만들어진다.

 

podspec파일은 라이브러리 버전, 의존성, 소스 등을 설정할 수 있고

README.md는 깃허브 프로젝트를 들어가면 나오는 페이지

이렇게 설명, 이미지 등을 입력을 할 수 있다.

LICENSE는 라이센스 파일이고

 

Example for 프로젝트명은 라이브러리를 만들며 테스트를 해볼수 있는 프로젝트고

Pods 는 라이브러리 프로젝트이다.

Development Pods 하위에

프로젝트명으로 되어 있는 폴더안에서 라이브러리 파일들을 만들면 된다.

 

먼저 podspec파일을 보면

 

이렇게 설정이 되어 있다.

차례대로

이름, 버전, 요약, 설명, 홈페이지, 스크린샷, 라이센스, 만든이, 소스, 소셜미디어, iOS버전, 소스파일, 리소스, 헤더파일, 프레임워크, 디펜전시 이고

라이브러리에 맞게 변경을 한다.

그리고 라이브러리 Swift버전과 iOS 타겟을 설정한다.

 

그 다음 ReplaceMe.swift 파일을 수정을 한다.

라이브러리를 수정 후

example를 만들어보았다. 아주 잘 작동한다.

 

라이브러리 배포하기

그러면 이제 github에 올려본다.

나는 소스트리를 이용중이여서 소스트리 기준으로 설명하겠다.

 

github에 리포지토리를 생성한 다음

설정 - 원격탭에서 리포티토리 URL을 적어주고

푸시를 누르면 완료 된다.

 

이제 cocoapods에 라이브러리를 배포해보겠다.

먼저 터미널에서 lint검사를 해본다.

pod lib lint 를 입력하면

일반적으로는 passed가 된다.

 

가끔

이렇게 오류가 나는 상황에서

pod lib lint --allow-warnings 를 입력을 하면

위와 같이 오류 내용을 상세히 볼 수 있다.

그리고 git 태그를 추가한 다음 푸시를 한다.

다음 터미널에서 pod trunk push 를 입력하면

cocoapods에 배포가 된다.

🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉

 

cocoapods 사이트에 들어가면 정상적으로 배포가 되었음을 알 수 있다.

 

라이브러리 업데이트

파일들을 수정 후 

 

podspec 파일에 s.version을 변경을 한다.

 

그리고 라이브러리 타겟에 Version을 수정한다.

그리고 git에 코드 푸시, tag수정후 푸시를 한 다음

터미널에서 pod trunk push 를 입력하면

cocoapods에 업데이트가 된다.

 

 

이렇게 만든 라이브러리를 사용하는 방법은

2021.02.08 - [Library] - Using Cocoapods 코코아팟 사용하기

 

Using Cocoapods 코코아팟 사용하기

코코아팟이 설치가 되어 있지 않으면 아래의 명령어를 터미널에 입력한다. $ sudo gem install cocoapods 프로젝트를 생성후 프로젝트 폴더에서 $ pod init 이란 명령어를 사용한다. 그럼 podfile이 생성이

pikachu987.tistory.com

이 글을 참조하면 된다.

 

라이브러리 코드에서 open, public, internal의 차이는

2021.01.14 - [iOS] - AccessControl 접근 한정자

 

AccessControl 접근 한정자

접근 한정자라고 한다. class나 struct, enum, extension, method에 접근 한정자를 붙여 모듈 외부에서 사용할 수 있거나 클래스 내부에서만 사용하게 할 수 있다. 접근한정자의 종류는 open, public, internal, f.

pikachu987.tistory.com

를 참조하면 된다.

 

반응형
Comments