티스토리 뷰
CocoaPod 에 Library 등록 방법 - Local Create
오픈 라이브러리를 iOS 에서 사용하게되면 보편적으로 Pod
을 활용하여 해당 프로젝트에 다운받게 됩니다. 다른 개발자들이 올린 오픈소스를 사용하면서 Pod
에 저만의 Code
을 등록하고 싶은 마음이 있었고 이런 저런 방법을 구글링하면서 연구하다가 github
에 있는 소스코드를 Pod
에 업로드에 성공하였습니다. 제가 업로드에 성공한 github
에 있는 소스코드를 Pod
에 업로드 방법을 소개하겠습니다.
( 본 글은Mac Os 기준으로 작성되었습니다.)
CocoaPod Library 만들기
가장 먼저 Pod
에 올릴 파일을 만들겠습니다.
너무 복잡하게 생각할 필요 없습니다.
터미널에서 CocoaPod Project을 만들 곳으로 이동합니다.
[pod lib create] 명령어를 실행합니다.
pod lib create [Project Name]
예시
pod lib create TestPodProject
pod lib create 명령어로 실행 하면 다음과 같은 문구가 나옵니다. 간단한 답변은 자신이 원하는 상황에 맞게 입력합니다.
What platform do you want to use?? [ iOS / macOS ]
> iOS
What language do you want to use?? [ Swift / ObjC ]
> Swift
Would you like to include a demo application with your library? [ Yes / No ]
> Yes
Which testing frameworks will you use? [ Quick / None ]
> None
Would you like to do view based testing? [ Yes / No ]
> No위의 질문에 대한 답변을 하게되면 자동으로 Project가 생성되며 Xcode 가 실행됩니다.
[포드 생성 완료된 화면]
[Xcode 호출 된 화면]
자신이 만들 라이브러리를 등록 준비합니다. (저장 장소 확인)
cd /Users/mac/Documents/iOS/PodProject_KCS/TestPodProject/TestPodProject/Classes
'pod lib create TestPodProject' 명령어 적은 로컬에 가면 프로젝트가 생성되었습니다. 그 프로젝트의
Classes
디렉토리에 자신이 만들 라이브러리를 생성하면됩니다.xcode > pods > Development Pods > Project Name 에 파일 생성합니다.
Test Class
을 생성할 것입니다. Pods 에 파일을 생성하는데Swift.file
이 아닌Cocoa Touch Class
을 생성합니다.[pods 파일 넣을 위치 화면]
[pods CocoaTouch 파일 넣는 화면]
[파일명 입력화면]
[파일 저장위치 설정화면]
Library로 사용할 기능 구현합니다.
테스트용으로
Log
을 표시하는 함수를 갖은 클래스를 생성합니다. 여기서Class
및Fuction
는public
으로 작성해야 합니다.import UIKit
public class TestPodClass: NSObject {
public func TestLog(msg: String){
print("Test Pod Class Message : \(msg)")
}
}
6번까지해서 로컬 Pod Library를 간단히 작성하였습니다. 5번에서 언급한 주소에서 라이브러리 소스를 구성하는 규칙만 지키시면 라이브러리 만드는 것에 있어서는 어려움이 없을 것으로 예상됩니다.
Testing Frameworks에서 Pods Library 확인하기
Pod lib create 로 생성할 때에 Testing frameworks 을 사용하겠다고 설정하였다면 지금 만든 Pods Library 가 정상 동작하는지 확인할 수 있습니다. 우선 Testing frameworks 로 이동합니다.
Testing Frameworks 의 ViewController 위치 이동
Test Code 작성
Test Pods 에서 작성한 로그 찍는 함수를 호출할 것입니다.
import TestPodProject
생성한 Pods Name
을 import 후 작성했던 TestLog() 메소드를 호출합니다. 만약 TestLog() 메소드 아닌 다른 것을 작성하였다면 그 메소드를 호출합니다.
import UIKit
import TestPodProject
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let test = TestPodClass()
test.TestLog(msg: "Hellow World")
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
빌드 진행을 하게되면 로그에 Heloow World 가 찍히는 것을 확인이 된다면 정상적으로 Pods 가 생성 되었음을 확인 할 수 있습니다.
[결과화면]
생성한 Pods 가 Import 안되는 경우 해결 방법
xcode > product > Build 로 Project Build 합니다.
Pods 에서 생성한 파일의 Target membership이 Pods library에 포함 되어 있는지 확인 합니다.
[Target membership]
TestProject 을 생성하여 Locol CocoaPods 사용하기
다른 앱에서 Locol Pods 을 호출하는 방법을 나누겠습니다.
첫 번째, 새로운 프로젝트를 생성 후 Other-Empty 파일 생성합니다.
우선 호출할 앱을 New Project 로 만듭니다. 그 다음 새로 만들어진 프로젝트에 Other - Empty 파일을 생성합니다.
두번째, Podfile 을 생성합니다.
파일 이름은 Podfile 을 생성합니다. 그후 Podfile 내용 안에 다음과 같이 구성합니다.
use_frameworks!
target '[호출 할 프로젝트명]' do
pod "호출 대상 Locol Pods 이름", :path => '[Locol Pod 위치]'
end
예를 들어 SampleTestLocalPods
프로젝트에서 TestPodProject
을 호출 시 다음과 같이 표현할 수 있습니다.
use_frameworks!
target 'SampleTestLocalPods' do
pod "TestPodProject", :path => '/Users/Documents/iOS/PodProject_KCS/TestPodProject'
end
세번째, Podfile을 설치합니다.
Terminal에서 호출 할 프로젝트로 이동합니다. 이전 단계에서 호출할 프로젝트에 podfile 을 생성하였기에 pod 를 intall하는 명령만 내립니다.
pod install
네번째, Locol CocoaPods 에 설정한 Class 을 호출하여 정상적으로 호출 되는지 확인합니다.
import UIKit
import TestPodProject
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let test = TestPodClass()
test.TestLog(msg: "Hello World")
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
간단한 방법으로 Locol Pods을 생성하고 호출하는 방법에 대해서 공유하였습니다. Locol Pods 에서 더 나아가 github에 등록하여 Pods Turnk 에 넣는 방법도 있습니다. 다양한 방법으로 자신만의 라이브러리를 만들어 더 좋은 프로그램을 만드는데 도움이 되었으면 좋겠습니다.
'프로그래밍 > iOS' 카테고리의 다른 글
SafeArea Source Code 로 영역 값 가져오기 (0) | 2018.07.06 |
---|---|
CocoaPod 에 Library 등록 방법 - Pods Trunk 등록 (1) | 2018.07.04 |
SandBox 계정 생성 (0) | 2018.06.30 |
[SWIFT] New File Template 만들기 (0) | 2018.06.10 |
[SWIFT] UITextView Center Vertical (텍스트뷰 세로 가운데 정렬) (0) | 2018.02.27 |
- push
- Android Studio
- missionchina
- 선교
- 스코어헬퍼
- flutter
- 탁구
- 임용고시
- DI
- MCC
- IOS
- Kotlin
- java
- 고시문
- 안드로이드
- missioon
- 패턴
- 점수판
- swift
- IT
- view
- Android
- 고시문헬퍼
- 미션차이나센터
- 디자인패턴
- RXjava
- issue
- 코틀린
- 알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |