Ad Clicks : Ad Views : Ad Clicks : Ad Views : Ad Clicks : Ad Views : Ad Clicks : Ad Views : Ad Clicks : Ad Views : Ad Clicks : Ad Views : Ad Clicks : Ad Views : Ad Clicks : Ad Views : Ad Clicks : Ad Views : Ad Clicks : Ad Views : Ad Clicks : Ad Views : Ad Clicks : Ad Views : Ad Clicks : Ad Views : Ad Clicks : Ad Views : Ad Clicks : Ad Views : Ad Clicks : Ad Views : Ad Clicks : Ad Views :

CocoaPods을 이용한 Submodule 만들기

/
/
/
2161 Views

CocoaPods + Submodule

하나의 프로젝트 Repository에 여러 서비스가 있는 구조로 개발을 하고 있었다. 그런데 서비스별로 각각 framework를 배포해아하는 상황이 발생했다. 어떻게 하면 서비스별 모듈로 배포도 가능하고, 본 프로젝트 관리도 쉬운 구조로 변경이 시급했다.

가장 쉽고 빨리 개발할 수 있는 static framework or dynamic framework가 먼저 생각나는건 어쩔 수 없는 것 같다. 그렇지만 이 방법은 점점 프로젝트가 커질수록 유지보수가 더 어려울 것이라 생각해서 더 좋은 방법을 연구했다.

Git Submodule 을 이용해서 각각의 서비스를 Repository로 만들어서 본 프로젝트에 연결하는 방식으로 바꾸었다. 공통된 부분은 Common 모듈로 만들어서 Dependency를 관리를 쉽게하도록 분리했다.

CocoaPods + Submodule 장점

  • 각각의 Repository로 소스를 관리하기 때문에 소스관리가 용이해짐.
  • CocoaPods을 이용해 모듈을 배포하게 되어서 배포가 편해짐
  • 3rd 에서는 Dependency 에 대한 부담이 없어짐

Git Submodule

모듈 프로젝트 생성

Submodule로 사용할 새로운 프로젝트를 추가한다. Cocoa Touch Framework를 이용해서 프로젝트를 생성한다.

$ git init
$ git remote add origin https://github.com/{사용자}/{프로젝트명}.git
$ git add .
$ git commit -m “first commit”
$ git push -u origin master

새로 만든 프로젝트를 Git에 연결한다.

Podspec 설정

Submodule과 본 프로젝트와 연결을 하기위해 PodSpec를 설정을 한다. Submodule 프로젝트의 폴더에 {모듈명}.podspec 파일을 생성한다.

Git Submodule 추가

$ git submodule add https://github.com/{사용자}/{서브 프로젝트명}.git {Sub Module명}
$ git submodule init
$ git submodule update

본 프로젝트에 서브모듈로 만든 프로젝트를 clone한다.

CocoaPods으로 Submodule 연결

본프로젝트에 pod init 명령어로 Podfile을 생성하여 위 예제처럼 수정한다.

pod ‘{Sub Module명}’, :path => ‘./{Sub Module 폴더명}’ 으로 서브모듈로 만들 프로젝트 폴더를 연결하여 Pod으로 관리할 수 있도록 설정한다.

pod install 명령어로 서브모듈을 연결하여 개발할 수 있다. 본프로젝트가 3rd 프로젝트가 되는 것이다.

Leave a Comment

이메일은 공개되지 않습니다.

This div height required for enabling the sticky sidebar