woong's

Xcode IOS CocoaPods 배포하기[1] 본문

Develop/IOS

Xcode IOS CocoaPods 배포하기[1]

dlsdnd345 2016. 2. 12. 16:00

 Xcode IOS CocoaPods 배포하기[1]


android 개발 당시 라이브러리를 넥서스 서버에 올려 놓고 gradle 을 통해서 가져와서 사용했었다.

xcode 에서는 gradle의 역할을 해주는 cocoaPods 를 통해서 라이브러리를 가져올수 있다. 

그럼 xcode 에서는 내가 만든 라이브러리를 배포하고 cocoaPods 를 통해서 가져올수 있는 방법이 있는지

의문이 들어 이포스트를 시작하게 되었습니다.


검색을 통해 찾아보니 cocoaPods 에 프로젝트를 배포해서 사용할수 있게 되어 있다.


1. public 배포

- 많은 사람들이 유용하게 사용할수 있도록 공개를 통해서 배포

2. private 배포 

- 남들에게 공유되기 꺼려지는 프로젝트 배포


위와 같이 두가지 방법이 있으며 두가지 방법에 대해 정리해보려 합니다. 

첫번째 포스트에서는 public 배포에 대해 설명하겠습니다. 

포스트는 cocoaPods install 이 되어있는 가정하에 작성 합니다.


참고 사이트 

https://guides.cocoapods.org/


1. 동작과정

- Xcode 라이브러리 프로젝트를 구성

        - 설정 파일 수정 작업 진행

- 라이브러리 작성

- git 프로젝트 업로드

- git 프로젝트 cocoapods Trunk로 업로드

- 프로젝트에서 cocoaPods 로 라이브러리 프로젝트 Import

 

2. 설정

- Xcode 라이브러리 프로젝트를 구성


1
pod lib create HzLib
cs


터미널에 위와 같이 입력 하면 여러 질문을 통해 xcode cocoaPods library 프로젝트가 생성 됩니다.

생성이 완료 되면 프로젝트가 오픈됩니다. 여기서 설정 파일에 설정을 완료 한후에 git에 프로젝트를 업로드 합니다.


- 설정 파일 수정 작업 진행


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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
 
#
# Be sure to run `pod lib lint HzLib.podspec' to ensure this is a
# valid spec before submitting.
#
# Any lines starting with a # are optional, but their use is encouraged
# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html
#
Pod::Spec.new do |s|
  s.name             = "HzLib"
  s.version          = "0.1.0"
  s.summary          = "Common HzLib"
# This description is used to generate tags and improve search results.
#   * Think: What does it do? Why did you write it? What is the focus?
#   * Try to keep it short, snappy and to the point.
#   * Write the description between the DESC delimiters below.
#   * Finally, don't worry about the indent, CocoaPods strips it!  
  s.description      = "IOS Common Util HzLib"
 
 
  s.homepage         = "https://github.com/dlsdnd345/HzLib"
  # s.screenshots     = "www.example.com/screenshots_1""www.example.com/screenshots_2"
  s.license          = 'MIT'
  s.author           = { "woong" => "dlsdnd345@mhand.net" }
  s.source           = { :git => "https://github.com/dlsdnd345/HzLib.git", :tag => s.version.to_s }
  # s.social_media_url = 'https://twitter.com/<TWITTER_USERNAME>'
 
  s.platform     = :ios, '7.0'
  s.requires_arc = true
 
  s.source_files = 'Pod/Classes/**/*'
  s.resource_bundles = {
    'HzLib' => ['Pod/Assets/*.png']
  }
 
  # s.public_header_files = 'Pod/Classes/**/*.h'
  # s.frameworks = 'UIKit''MapKit'
  # s.dependency 'AFNetworking''~> 2.3'
end
 
 
 
cs


필자는 위와 같이 작성 하였습니다.
위의 source 부분은 라이브러리 프로젝트가 올라갈 git 저장소 주소를 넣어주면 됩니다.
위와 같이 완료가 되었으면 spec 문서가 잘 작성되었는지 명령어를 통해서 검토를 합니다.

1
pod lib lint
cs



위와 같이 pass 가 되면 잘 작성하게 된것입니다.


- 라이브러리 작성



Pod < Classes 에 파일생성후 코드를 작성 하면 됩니다.

필자는 간단하게 로그 출력해보는 코드를 작성하였습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//
//  HzUtility.m
//  Pods
//
//  Created by woong on 2016. 2. 12..
//
//
 
#import "HzUtility.h"
 
@implementation HzUtility
 
 
+ (void) sayHello{
    NSLog(@"Hello World");
}
 
@end
 
 
 
cs

- git 프로젝트 업로드

이제 잘 작성한 프로젝트를 git 에 push 해야 합니다.

git 으로 프로젝트로 업로드 할때 주의점은 Tag와 Spec에서 작성한 version 하고 맞아야 한다는것입니다.




- git 프로젝트 cocoapods Trunk로 업로드

 이제 git 라이브러리 프로젝트를 모든사용자들이 사용할수 있도록 cocoaPods Trunk로 업로드 해야합니다.

 프로젝트 루트 패스로 이동하여 아래 명령어를 입력합니다.


1
pod trunk push [NAME.podspec]
cs


위와 같이 잘올라 갔습니다. 위와 같이 업로드가 완료 되면 cocoaPods Trunk 에 들어가서 확인해보면 

프로젝트가 올라간것을 확인 할수 있습니다. 이제 많은 사람들에게 유용한 코드를 배포할수 있게 된것입니다.



- 프로젝트에서 cocoaPods 로 라이브러리 프로젝트 Import

이제 준비가 완료된 라이브러리를 사용해야 합니다.


1
pod 'HzLib'
cs

podFile 에 추가해서 설치 및 업데이트 명령어를 통해서 라이브러리를 받을수 있습니다.


초록색으로 설치가 된것을 볼수 있습니다.





Comments