JEP's Diary

Xcode CocoaPod에 나의 라이브러리 등록하기 (Public Repository) 본문

Development/iOS

Xcode CocoaPod에 나의 라이브러리 등록하기 (Public Repository)

지으니88 2016. 2. 15. 01:14

Xcode CocoaPod에 나의 라이브러리 등록하기 (Public Repository)

(참조 : https://guides.cocoapods.org/making/making-a-cocoapod.html)


CocoaPod에 직접 만든 라이브러리를 배포하여, 다른 사람들이 나의 라이브러리를 사용 할 수 있도록 할 수 있습니다.


과정

  1. 로컬 라이브러리 프로젝트 생성
  2. 원격 라이브러리 프로젝트 생성
  3. CocoaPod trunk 생성 및 배포 (public repository)
  4. 나의 라이브러리 사용하기 

1. 로컬 라이브러리 프로젝트 생성 및 설정 변경

(참조 : http://guides.cocoapods.org/making/using-pod-lib-create.html)


CocoaPod 에서 파일을 쉽게 포함할 수 있고, 빠르게 시작할 수 있도록 구조가 갖추어진 라이브러리 프로젝트 템플릿을 제공해주고 있습니다.

터미널에서 프로젝트를 생성할 위치로 이동하여 라이브러리를 생성합니다.


명령어 실행 : pod lib create 라이브러리이름 

pod lib create JELibrarySample



명령어를 실행하면 몇가지의 질문이 나옵니다. 각자 원하는 설정을 하면 됩니다.

- 언어 선택 

- Demo 앱 생성 여부

- 테스트 프레임워크 사용 여부

- View based 테스팅 여부

- Class 이름


라이브러리 프로젝트가 생성되었습니다!



이제 설정 변경을 하기 위해 .podspec 파일을 엽니다.

.podspec 파일은 소스를 사용할 파일, 빌드 설정 적용, 이름, 버전, 설명과 같은 일반 메타 데이타 정보를 포함하고 있습니다.

각각 요소에 대한 설명은 아래 페이지에서 참조!

(http://guides.cocoapods.org/making/specs-and-specs-repo.html)


설정을 변경 하기 전에 먼저 터미널에서 라이브러리 프로젝트가 있는 위치로 이동하여 현재 .podspec파일이 올바르게 작성 되었나부터 확인해보겠습니다.

명령어 실행 : pod lib lint



Warning 2개,  Error 1개가 발생합니다. 이것들을 모두 해결해 주어야 합니다. (.podspec 파일 편집)

- WARN | summary : 의미 없는 요약 정보로, 수정 하라는 메시지  -> 원하는 요약정보를 작성하기.

- ERROR | description : 설명 정보가 작성하라는 메시지 -> 원하는 설명정보를 작성하기.

- WARN | source url : 유효하지 않는 url이므로 수정하라는 메세지 -> 2번에서 올려둔 Git저장소 url을 입력.



3가지를 모두 해결 한 뒤, 다시 pod lib lint 명령어를 실행합니다.

아래와 같이 검증이 통과되었습니다.



2. 원격 라이브러리 프로젝트 생성

1번에서 생성했던 로컬 라이브러리 프로젝트를 Git 저장소에 올려둡니다.

이 Git에 올려둔 저장소와 CocoaPod의 저장소를 연결하여 사용하게 됩니다.




3. CocoaPod trunk 생성 및 배포

(참조 : http://guides.cocoapods.org/making/getting-setup-with-trunk.html)


Cocoapod trunk 를 생성합니다.

명령어 실행 : pod trunk register 본인이메일계정 Trunk이름 --description='세션 identify 설명'

pod trunk register jepark@mhand.net JELibrarySampleTrunk --description='je-macbook pro'

(pod trunk register --help로 더 자세한 설명을 볼 수 있습니다.)



위에 작성한 이메일로 세션 확인 메일이 보내집니다. 메일을 확인하여 세션확인을 합니다.

메일 확인 후  trunk가 생성되었는지 확인해봅니다.

명령어 실행 : pod trunk me



생성한 Cocoapod trunk로 직접 만든 라이브러리를 배포하겠습니다.

배포 하기 위해 원격저장소에 있는 프로젝트를 release Tag를 생성해야 합니다.

2번과정에서 만들었던 Git 저장소로 접속합니다. release 메뉴를 클릭.



Create a new release 를 클릭하여 release 생성합니다.



버전을 적습니다. 이 때 .podspec파일의 s.version과 같아야 합니다. 

Description에 배포할 내용을 적고 Publish release 를 클릭합니다.



release가 생성되었습니다.



이 Release 버전을 CocoaPod trunk에 배포합니다.

명령어 실행 : pod trunk push spec파일이름 --verbose

pod trunk push JELibrarySample.podspec  --verbose



0.1.0 버전의 라이브러리가 배포 되었습니다!


실제로 CocoaPod에 배포된 라이브러리를 확인해보겠습니다.

https://github.com/CocoaPods/Specs/tree/master/Specs/JELibrarySample 로 접속합니다.

Url 경로에서 마지막 부분은 본인이 만든 이름으로 변경하여 접속합니다.




4. 나의 라이브러리 사용하기

위 과정들을 통해 배포된 라이브러리를 사용해보도록 하겠습니다.


과정

  • 라이브러리 테스트 코드 작성
  • 라이브러리 .podspec 파일 수정 ( 버전 및 요약정보 변경)
  • 라이브러리 수정한 부분 Git에 Push
  • Git에서 Release Tag 생성
  • CocoaPod에 새로운 버전의 라이브러리 배포
  • 프로젝트에서 라이브러리 사용해보기

라이브러리 테스트 코드 작성

Pods > Development Pods > JELibrarySample > Pod > Classes 하위에 파일을 새로 생성합니다.

함수를 만들고 Log를 출력하는 코드를 작성합니다.



JEUtility.h

1
2
3
4
5
6
@interface JEUtility : NSObject
 
- (void)HelloJEUtility;
 
@end
 
cs


JEUtility.m

1
2
3
4
5
6
7
8
9
10
#import "JEUtility.h"
 
@implementation JEUtility
 
- (void)HelloJEUtility {
    NSLog(@"Hello JEUtility !!!");
}
 
@end
 
cs


라이브러리 .podspec 파일 수정 (버전 및 요약정보 변경)

라이브러리를 새로 배포 할 것이므로 버전을 올려줍니다.

저는 0.1.0 에서 0.2.0으로 버전 Up했습니다.

다른 항목들도 수정이 필요하다면 수정해도 됩니다.



라이브러리 수정한 부분 Git에 Push

수정한 코드를 Git에 Push 합니다.


Git에서 Release Tag 생성

새로운 버전을 Release 해야 합니다.

다시 Git에 접속하여 Release 메뉴를 클릭 한 후 보여지는 아래의 화면에서 Edit을 클릭합니다.



버전을 0.2.0으로 수정해줍니다. 이 때 위에서 .podspec 파일에서 변경해주었던 버전(0.2.0)과 같아야 합니다.

Update Release를 클릭합니다.



Tag를 확인해 보면 0.2.0 태그가 생성 된 것을 볼 수 있습니다.



CocoaPods에 새로운 버전의 라이브러리 배포

이게 새롭게 배포 된 0.2.0의 라이브러리를 CocoaPod trunk에도 배포 해야 합니다.

명령어 실행 : pod trunk push spec파일이름 --verbose

pod trunk push JELibrarySample.podspec  --verbose



0.2.0 버전에 CocoaPods에 배포되었습니다!


프로젝트에서 라이브러리 사용해보기

라이브러리를 가져와 사용 할 프로젝트를 오픈합니다.

(Cocoapod가 설치 되어 있다는 가정 하에 진행합니다. 설치방법 : http://jepark-diary.tistory.com/12)


터미널을 열고 해당 프로젝트 위치로 이동하여 podfile을 편집합니다.

명령어 실행 : open -e podfile



그리고 라이브러리를 설치합니다.

명령어 실행 : pod install

이미 설치가 되어 있다면 pod update하면 됩니다.



라이브러리가 설치 되었습니다.

이제 프로젝트에서 이 라이브러리를 import 하여 사용합니다.