[ Swift ] CocoaPods Spec 라이브러리 배포

 

이 글은 코코아팟스의 라이브러리 배포를 위한 글로 기본적인 코코아팟스의 사용법에 대해 알고 있어야 이해가 가능합니다. 스위프트를 이용하다 보면 오픈소스를 사용할 일이 많습니다. 그래서 의존성 매니징을 위한 툴이 필요한데 코코아팟스는 그중 하나이며 가장 유명합니다. 대부분 기본적으로 지원하고 있습니다. 오픈소스를 사용할 일도 있지만 직접 배포할 경우도 있는데요. 그 방법에 대해서 알아보겠습니다.

 

1. 새로운 프로젝트 생성

우선 터미널 창을 키시고 프로젝트가 생성될 경로로 이동해서 다음과 같은 명령어를 입력합니다.

pod lib create 프로젝트 이름

 

 2. 프로젝트 옵션 선택

pod lib create 명령이 끝나면 원하는 프로젝트의 옵션을 결정하게 됩니다.

  1. 플랫폼 종류의 선택 - iOS 또는 macOS로 설정합니다.
  2. 랭귀지 선택 - Swift 또는 Objective-C가 되겠죠.
  3. 예제 소스의 여부 - UI 라이브러리일 경우에 YES로 설정하는 것이 편합니다.
  4. 테스팅 여부 None
  5. UI 테스팅 여부 No
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

Witch testing frameworks will you use? [ Quick / None ]
> None

Would you like to do view based testing? [ Yes / No ]
> No

 

▼ 3. 프로젝트 이름.podspec 수정

프로젝트를 생성하고 나면 자동으로 새로운 Xcode 프로젝트가 생성과 동시에 열립니다. 해당 소스를 보면. podspec 확장자로 되어 있는 파일을 찾아서 수정합니다. 많은 주석들이 있는데 일단 수정해야 할 것만 나열해 봤습니다. 나머지는 기본값으로 두셔도 됩니다.

  1. s.name - 프로젝트 이름을 설정을 설정합니다.
  2. s.version - 나중에 github에 릴리즈할 번호와 매칭 됩니다.
  3. s.summary - 간단히 한 줄로 프로젝트를 설명합니다.
  4. s.description - 프로젝트에 대한 상세 설명입니다.
  5. s.swift_version - 이 프로젝트가 지원하는 Swift 버전을 기술합니다.
  6. s.license - 오픈소스의 라이선스를 기술합니다. MIT(수정 배포 가능)
  7. s.ios.deployment_target - 프로젝트가 지원하는 타깃을 기술합니다.
  8. s.source_files = 프로젝트의 클래스들이 위치할 곳을 지정합니다.
Pod::Spec.new do |s|
  s.name             = '프로젝트 이름'
  s.version          = '1.0.0'
  s.summary          = '요약'
  s.description      = '프로젝트 설명'
  s.swift_version    = '5.0'
  s.license          = { :type => 'MIT', :file => 'LICENSE' }
  s.ios.deployment_target = '9.0'
  s.source_files = 'MyProj/Classes/**/*'
end
 

 

4. 스위프트 버전 수정

그냥 프로젝트를 실행하면 빌드 세팅에 스위프트 버전이 최신 버전이 아닐 겁니다. 예제 소스 프로젝트, Pods 프로젝트의 스위프트 버전을 동일하게 맞춥니다.

5. 깃허브 설정

깃 허브 프로젝트를 생성해서 해당 프로젝트의 레파지토리와 연결합니다. 깃허브 프로젝트 생성에 대해서는 생략하겠습니다. Github 프로젝트 우측의 Create a new release라는 메뉴를 선택합니다.

 6. 버전 추가

이제 새로운 버전을 생성합니다. 이는 코코아팟스 Spec 파일에 버전과 동일해야 합니다. 위쪽에 1.0.0의 버전으로 태그가 자동 생성됩니다. 만약 이 버전이 동일하지 않다면 CocoaPods 프로젝트 업로드 시에 문제가 발생합니다. 매번 소스를 올릴 때마다 릴리즈를 해주어야 합니다.

7. 검증

소스가 정상인지 해당 프로젝트로 이동해서 다음 명령어를 입력합니다. 이 프로세스가 통과되면 실제 업로드만 하면 됩니다.

--allow-warnings 옵션으로 경고를 제거할 수 있습니다.

pod spec lint

 

8. pod trunk 계정 등록 (최초 1회)

만약 최초 프로젝트를 올리는 거라면 다음과 같이 등록 절차를 진행합니다.

pod trunk register 이메일주소 계정이름 -description='계정설명'

 

9. pod trunk push

pod trunk push

 

10. pod repo update [ pod install 전에 ]

만약 테스트를 하려고 pod install을 했는데 프로젝트가 보이지 않는다면 다음 명령어를 이용해서 레파지토리를 업데이트합니다.

pod repo update

 

gitignore 설정

# Created by https://www.toptal.com/developers/gitignore/api/xcode
# Edit at https://www.toptal.com/developers/gitignore?templates=xcode

### Xcode ###
# Xcode
#
# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore

## User settings
xcuserdata/

## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9)
*.xcscmblueprint
*.xccheckout

## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4)
build/
DerivedData/
*.moved-aside
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3

## Gcc Patch
/*.gcno

### Xcode Patch ###
*.xcodeproj/*
!*.xcodeproj/project.pbxproj
!*.xcodeproj/xcshareddata/
!*.xcworkspace/contents.xcworkspacedata
**/xcshareddata/WorkspaceSettings.xcsettings

# End of https://www.toptal.com/developers/gitignore/api/xcode

댓글

Designed by JB FACTORY