2014-12-19 10 views
9

ContextWie mehrere Hülsen in einer Git-Repo

Wir entwickeln eine große Software-Plattform haben, die Android enthält, Server, Web und iOS (mit anderen zu kommen). Um den gesamten Code auf dem neuesten Stand zu halten, behalten wir alles in einem Master Repo (das ist sehr wichtig, da wir ein Modell auf allen Plattformen teilen, so dass Commits viele verschiedene Plattformen betreffen können).

Um die iOS-Seite zu behandeln, haben wir uns entschlossen, das Projekt in modulare Pods zu unterteilen, damit wir sie problemlos in unseren anderen Bibliotheken (auch Pods) teilen können Fügen Sie unsere API in ihre bestehenden Projekte ein (dh wir möchten die Cocoapod-Struktur für all die wunderbaren Vorteile nutzen, die cocaapods bietet).

Um dies zu erreichen, habe ich ein eigenes Spec Repo und Pod Specs für jedes unserer Projekte eingerichtet.

tl; dr: Wir haben einen Master-Git-Repo, der unseren gesamten Code enthält (mehrere Plattformen, einschließlich mehrerer verschiedener Pods). Wir möchten diese Struktur beibehalten, aber auch Pods aus dem Code innerhalb des Repos erstellen können.

Frage

Das Problem, das ich in laufende bin ist die gesamte Dokumentation ich für pod Spezifikationen finden kann sagen Sie dieses Format verwenden:

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

der einzige Teil, Reisen Ich bin der Meinung, dass unser Repo nicht nur einen Pod enthält (geschweige denn iOS-Code).

Ist es möglich, so etwas wie zu tun:

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

Wir wirklich zu schätzen jede Hilfe

Prost

Indigo

+1

Haben Sie es endlich herausgefunden, wie es geht? – iOSAddicted

Antwort

11

Es ist möglich, mehrere cocoapods auf einzelne Git haben Repository.

Wie Sie bereits gesagt haben, können Sie für jeden Code, der zu einem bestimmten Pod-Code führt, verschiedene Quellen angeben.

Damit dies funktioniert, müssen Sie auch die richtigen source_files in Spezifikation, zum Beispiel: s.source_files = 'SomePodDirectory/*.swift'.

Sie können sogar mehrere Versionen jedes Pods verwalten, indem Sie etwas wie dieses für Quelle: s.source = { :git => 'https://github.com/MyCompany/Repository.git', :tag => 'SomePodName-v'+String(s.version) } verwenden.

In diesem Fall sollten Sie geeignete Tags auf Git (zum Beispiel SomePodName-v1.0.0) erstellen.

Sie können Arbeitsbeispiel dieses here sehen.

Verwandte Themen