2014-12-19 6 views
9

상황은 어떻게 자식의 repo

우리는 (다른 사람이 와서 함께) 안드로이드, 서버, 웹 및 iOS를 포함하는 대형 소프트웨어 플랫폼을 개발하고 여러 포트를 갖고있다. 우리의 모든 코드를 서로 최신 상태로 유지하기 위해 우리는 하나의 마스터 레포에 모든 것을 보관합니다 (모든 플랫폼에서 모델을 공유 할 때 커밋이 여러 플랫폼에 영향을 미칠 수 있기 때문에 매우 중요합니다).

iOS 측을 처리하기 위해 우리는 다른 라이브러리 (포드)에서도 쉽게 공유 할 수 있도록 프로젝트를 모듈 식 포드로 나누기로 결정했습니다. 따라서 우리가 출시 할 때 고객이 쉽게 기존 프로젝트에 API를 포함하십시오 (즉, 우리는 cocoapod가 제공하는 모든 훌륭한 이점에 대해 cocoapods 구조를 사용하고자합니다).

이 작업을 수행하기 위해 각 프로젝트의 개인 사양 레포 및 포드 사양을 설정했습니다.

tl; dr : 모든 코드 (여러 개의 다른 포드를 포함한 여러 플랫폼)를 보유하고있는 하나의 마스터 자식 레포가 있습니다. 우리는이 구조를 유지하고 싶지만 repo 내의 코드에서 포드를 만들 수 있어야합니다.

질문

내가 실행 해요 문제는 내가 포드 사양에 대한 찾을 수있는 모든 문서를 당신이이 형식을 사용 할 말 :

spec.source = { :git => 'https://github.com/AFNetworking/AFNetworking.git', :tag => spec.version.to_s }

여행 유일한 부분을 저의 레포는 단지 하나의 포드 (단지 iOS 코드는 말할 것도 없습니다)를 포함하지 않습니다.

는 그런 짓을 할 수 있는가 :

spec.source = { :git => 'https://github.com/MyCompany/Master/MyCompanyCoreDir', :tag => spec.version.to_s }

우리는 정말 어떤 도움을

건배

인디고 감사

+1

마침내 어떻게하는지 알아 냈습니까? – iOSAddicted

답변

11

하나의 망할 놈의 여러 cocoapods을 가질 수 있습니다 저장소.

앞에서 말씀 드렸듯이 특정 Pod 코드로 이어지는 각각 다른 소스를 지정할 수 있습니다.

이 기능을 작동 시키려면 source_files을 지정해야합니다 (예 : s.source_files = 'SomePodDirectory/*.swift').

소스 : s.source = { :git => 'https://github.com/MyCompany/Repository.git', :tag => 'SomePodName-v'+String(s.version) }에 대해 다음과 같이 여러 개의 버전을 관리 할 수도 있습니다.

그런 경우 Git에 적절한 태그를 만들어야합니다 (예 : SomePodName-v1.0.0).

이 작업 표는 here입니다.