얼마전에 Coordinator Pattern을 적용한 Dependency Injection(DI) 라이브러리(FlowInjection)를 만들었는데,
CocoaPods에 배포하는 과정을 자주 안하면 까먹게 되더라구요.
그래서 이번엔 만든 Library를 CocoaPods에 배포하는 방법에 대해 정리해보도록 하겠습니다: ]
먼저 Github과 CocoaPods를 사용한 경험이 있는 분들을 대상으로 진행해보도록 하겠습니다.
1.
먼저 GitHub에 들어가서 새로운 Repository를 만들어줍니다.
저는 FlowInject를 만들었습니다.
이때 왠만하면 README라던가 License같은걸 건들지 않고 생성하는것이 좋습니다.
2.
주소를 복사해서 clone을 해줍니다!
* 현재 경로 : ~/Documents/Private/FlowInject
git clone git@github.com:jinShine/FlowInject.git
3.
clone한 폴더(FlowInjection)에 와서 아래와 같은 명령어를 입력합니다.
pod lib create pod name
* pod lib create pod name
podSpec파일을 생성해주고, cocoapods에 배포되는 프로젝트를 만들어주는 명령어
3번 명령어를 입력해주고 나면 아래와같은 질문들이 나오고, 대답을 다 하고 나면 라이브러리가 생성되면서 엑스코드 창이 열린다.
저는 example프로젝트만 만들어놓고, 테스트 코드를 만들지 않았기 때문에 4, 5번째를 No로 해주었습니다.
생성이 완료되면 FlowInject폴더에 아래와 같은 파일 구조가 생겼습니다!
NOTE
제 기준에 현재 경로는 ~/Documents/Private/FlowInject 입니다.
pod 프로젝트가 생성됨으로써 ~/Documents/Private/FlowInject/FlowInject가 됩니다.
여기서 팁이 있다면 보통 오픈소스들은 Root폴더를 제거하고 바로 파일들을 보여주게 합니다.
즉, ~/Documents/Private/FlowInject/FlowInject가 아닌, ~/Documents/Private/FlowInject 형태로 만들어주세요!
4.
Xcode 좌측 폴더 구조에서 podspec을 열어줍니다.
Podspec Metadata 폴더 안에 .podspec파일을 열어보면 아래와 같은 메타데이터가 들어있는걸 볼 수 있습니다.
처음엔 주석을 잘 읽어보시고 주석형태처럼 활용해도되지만 깔끔하게 필요한 것들만 보도록 하겠습니다.
Pod::Spec.new do |s|
s.name = 'FlowInject'
s.version = '0.1.0'
s.swift_version = '4.2'
s.summary = 'A library of Coordinator Patterns that are easy to use for dependency injections in applications written on pure Swift for iOS.'
s.homepage = 'https://github.com/jinShine/FlowInject'
# s.screenshots = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2'
s.license = { :type => 'MIT', :file => 'LICENSE' }
s.author = { 'seungjin' => 'seungjin429@gmail.com' }
s.source = { :git => 'https://github.com/jinShine/FlowInject.git', :tag => s.version.to_s }
# s.social_media_url = 'https://twitter.com/<TWITTER_USERNAME>'
s.ios.deployment_target = '9.0'
s.source_files = 'FlowInject/Classes/**/*'
end
pod 메타데이터의 name은 FlowInject고, version은 0.1.0으로 되어있고 s.swift_version을 추가했습니다.
summary같은 경우 꼭 수정해 주셔야 나중에 에러가 안납니다!
5.
GitHub저장소에 Push
여기까지 했으면 GitHub에 Push를 하면 아래와 같은 폴더 구조가 생기고 기본적으로 README도 생성된것이 보입니다.
6.
releases 버튼 선택 후 Create a new release버튼 선택
7.
Tag version, Release title를 입력 후 Publish release 버튼 선택
Tag version은 꼭 .podspec에 적었던 version과 동일해야됩니다!
8.
터미널에서 pod spec lint 명령어를 수행한다.
아래와 같이 나오면 유효성 검사 성공!
9.
Validation이 완료되면 계정을 등록 시켜줘야합니다.
pod trunk register 이메일주소 계정이름
10.
등록한 이메일로 인증 메일이 하나 오는데 인증해줍니다.
11.
확인이 완료되면 배포만 하면 끝입니다!
pod trunk push
아래와 같은 화면이 뜨면 성공입니다 :]
오픈소스 개발자가 되신것을 축하드립니다 ^^
이제 Podfile을 이용해서 설치하고 사용하면 됩니다.
다음엔 Carthage로 찾아 뵙겠습니다!
끝 :]
'iOS' 카테고리의 다른 글
[iOS] iOS13 Modal Style 및 Life Cycle (0) | 2019.10.30 |
---|---|
[iOS] 13 이슈 대응 및 변경 사항 공유 (0) | 2019.09.25 |
[iOS] Image Rendering Mode (0) | 2019.08.01 |
[iOS] Build Configuration 설정 방법 (0) | 2019.07.31 |
[iOS] Cell Life Cycle (1) | 2019.07.30 |