티스토리 뷰

반응형


CocoaPod Local Pods 만들었다면 cocoaPod Trunk에 등록하는 방법을 공유하겠습니다.

.podspec 파일 정보 넣기

CocoaPod Create Library 하면 .podspec 파일이 생성됩니다.

우선 .podspec 파일을 편집창에서 오픈 합니다.

[.podspec 파일]

#
# Be sure to run `pod lib lint SamplePods.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 https://guides.cocoapods.org/syntax/podspec.html
#

Pod::Spec.new do |s|
 s.name             = 'SamplePods'  //[Pods 이름]
 s.version          = '0.1.0' //[Pods 버전, github 등록 시 tag 버전이 됩니다.]
 s.summary          = 'This is my First Upload SamplePods.' //[pods 간략 설명입니다.]

# 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      = <<-DESC
#TODO: Add long description of the pod here.
#                       DESC

 s.homepage         = 'https://github.com/Developer/SamplePods'  
 //[pods 을 설명할 홈페이지]
# s.screenshots     = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2'
 //[pods 스크린샷, 나중에 등록 가능하므로 생략]
 s.license          = { :type => 'MIT', :file => 'LICENSE' }
 s.author           = { 'Developer' => 'developer@mail.com' }
 //[pods 저자 => 이메일]
 s.source           = { :git => 'https://github.com/FaithDeveloper/SamplePods.git', :tag => s.version.to_s }
 //[pods 등록한 깃허브 주소]
# s.social_media_url = 'https://twitter.com/<TWITTER_USERNAME>'

 s.ios.deployment_target = '8.0'
 //[pods 가 지원하는 타겟 버전]
 s.source_files = 'SamplePods/Classes/**/*'
 //[pods 파일 위치]
# s.resource_bundles = {
#   'SamplePods' => ['SamplePods/Assets/*.png']
# }

# s.public_header_files = 'Pod/Classes/**/*.h'
# s.frameworks = 'UIKit', 'MapKit'
# s.dependency 'AFNetworking', '~> 2.3'
end

주석으로 표시한 .podspec 필요한 정보를 입력합니다. 만약 github 등록을 만약 안했을 경우 등록한 다음에 내용을 업데이트 해주세요. github 주소는 필수 항목입니다.

참고주석(//) 으로 표시한 것은 이해를 돕기위해 넣은 부분이고 등록 시에는 주석을 제거해주세요.


CocoaPods에 등록할 프로젝트 github 업로드하기

CocoaPods에 등록하려는 프로젝트(위에 작성한 .podspec 을 보유하고 있는 프로젝트)를 github에 업로드 합니다.

업로드 하는 방법

  1. Terminal을 열어 CocoaPods에 등록하려는 프로젝트로 이동합니다.

  2. git 초기화 합니다.

    $ git init
  3. 프로젝트를 git 에 add 합니다.

    $ git add --all
  4. git 커밋을 합니다.

    $ git commit -m "등록할 메세지"
  5. [.podspec] 에 입력 한 s.version = '0.1.0' 값을 git tag에 포함합니다.

    git tag 0.1.0
  6. 현재 로컬 git과 원격으로 등록한 저장소(Repository) 와 연결해야합니다. 만약 연결할 저장소(Repository) 을 생성하지 않았다면 github에서 저장소(Repository) 생성합니다.

  7. 현재 로컬 git과 원격으로 등록한 저장소(Repository) 와 연결 합니다.

    $ git remote add origin [github 주소] 

    ex)
    $ git remote add origin https://github.com/FaithDeveloper/SamplePods.git
  8. git 에 로컬에 저장된 것을 push 합니다.

    git push -u origin master --tags


CocoaPods Trunk 에 업로드 하기

GitHub 업로드까지 한다면 마지막 단계은 Trunk에 업로드 해야합니다. 우선 업로드 할 프로젝트 위치로 Terminal로 이동합니다.


CocoaPods Trunk 등록

CocoaPods Trunk 등록 전 이메일 인증을 먼저 받아야합니다. 터미널에 CocoaPods Trunk 등록을 시도합니다.

pod trunk register [이메일] [등록자]


pod trunk register 시도 시 기입한 이메일로 확인 메일이 넘어옵니다. 이메일에 함께 넘어온 link 을 클릭 합니다.

CocoaPods Trunk 등록 준비가 완료된 상태입니다. 이제 실질적으로 Trunk 업로드 하겠습니다.


CocoaPods Push

CocoaPods Push 하는 방법은 간단합니다. pod push 명령어만 입력하면됩니다.

$ pod trunk push [.podspec 파일(확장자 포함)]

ex)$ pod trunk push SamplePods.podspec

시간이 걸리지만 문제가 없다면 성공 메세지를 확인할 수 있습니다.



CocoaPods Push 시 에러 대응

프로그램으로 첫 시도하면 항상 실패를 만나게 되는거 같습니다. 저 또한 여러 이슈를 만났습니다. 그 중 대표적인 2가지를 소개하려고 합니다.

SIMCTL ERROR



xcodeCommand Line Tools 가 등록 되지 않아서 나오는 이슈입니다.

해결방법은 xcode 을 실행하여 Preferences > Locations 로 진입합니다. 그 후 Command Line Tools 을 설정해 줍니다.

SWIFT_VERSION ERROR

pod trunk push 할 때에 Swift Version이 명시되어 있지 않아서 나오는 이슈 입니다.



해결방법은 pod trunk push 뒤에 스위프트 버전을 넣어주면 됩니다.

$ pod trunk push [.podspec 파일(확장자 포함)] --swift-version=[Swift 버전]

ex)$ pod trunk push SamplePods.podspec --swift-version=4.1


정리

CocoaPod 에 Library 등록 방법을 공유하였습니다.

자신만의 라이브러리를 만들면서 업무의 효율성을 기여하는데 기대합니다.

참고

https://www.youtube.com/watch?v=TcSqF_vnvD0&t=3s

https://cocoapods.org/pods/SamplePods

반응형
댓글