2012-06-14 5 views
5

Ich bin auf der Suche nach dem besten Ansatz zur Anpassung unserer iOS-App, so dass wir leicht White Label-Versionen davon erstellen und sie alle synchron halten können.iOS statische Bibliothek Codebase für White Label-Anwendungen

Ein Ansatz besteht darin, die gesamte Codebasis in ein statisches Bibliotheksprojekt zu stellen. Erstellen Sie dann ein separates Projekt für unsere Haupt-App und jede White-Label-App. Diese Projekte enthalten jeweils einen Verweis auf die Codebasisbibliothek als Unterprojekt und ihre eigenen Assets wie Symbole, Laden von Bildern und eine Info.plist-Datei.

Mein Kollege hat diesen Ansatz erfolgreich mit unserem Android-Schwesterprojekt in Eclipse verwendet.

Leider funktioniert dieser Ansatz in xcode möglicherweise nicht. xcode scheint nicht zu erlauben, einige Ressourcen mit einer statischen Bibliothek zu bündeln, wie die Settings.bundle und Localizable.strings, die wesentlich sind.

Gibt es eine Möglichkeit, wie ich diesen Ansatz in xcode verwenden kann, oder sollte ich besser nur den Codebase-Ordner aus jedem Projekt referenzieren?

Edit:

Ursprünglich war ich die Planung nur von jedem Projekt des Codebasis Ordner verweisen, fand aber, dass dieser Ansatz das Code-Basis-Verzeichnis in jedem Projekt neu Hinzufügen jedes Mal, wenn eine Datei hinzugefügt wurde erfordern würde/entfernt/in der Codebasis umbenannt.

Antwort

4

Ich habe weiß beschriftete Apps gemacht. Sie sollten zuerst Ziele versuchen. Ziele sind in Projekten enthalten. Sie können Ihre Quellen in dasselbe Projekt einschließen. Setzen Sie alles, was variiert, in nur ein paar Dateien zusammen und variieren Sie, welche dieser Dateien Sie in jedes Ziel einfügen.

Sie müssen noch sicherstellen, dass Dateien in allen Ihren Zielen sind, aber Sie werden aufgefordert oder erhalten einen Linkfehler und wenn Sie eine Datei einschließlich fehlt es ist nur ein Kontrollkästchen aktiviert.

Sie können die zielspezifischen Dateien ziemlich begrenzt halten. Ich habe eine gemeinsame xcassets-Datei und eine für jedes Ziel. Ich habe auch separate plists und wenige andere Ressourcen für jedes Ziel. Alles andere ist geteilt.

Referenzen:

+0

Vielen Dank, es sieht aus wie Ziele der beste Ansatz sein wird. – RohinNZ

2

Sie können nicht Bündel Ressourcen mit einer statischen Bibliothek automatisch, aber es gibt nichts, was man von einschließlich der gemeinsamen Ressourcen von Hand zu verhindern. Sie können einen Arbeitsbereich für das angepasste Projekt erstellen, das Projekt der Bibliothek in den Arbeitsbereich einfügen und dann die Ressourcengruppe aus dem Projektbaum der Bibliothek in das Hauptprojekt ziehen.

3

Als bezahltes Beratungsprojekt überarbeite ich die White-Label-Strategien eines Unternehmens. Sie haben eine Reihe von .sh-Dateien erstellt, die den gesamten Build in den neuen Namen kopieren - einschließlich einer neuen .plist- und Projektdatei.

Was sie nicht berücksichtigt haben, ist Versionierung dieser Anwendungen; Daher denke ich, Bibliotheken ist der beste Ansatz, wenn Sie Ihre App als solche erstellen können. Es ist durchaus möglich, dass Sie mehrere Versionen derselben White-Label-App haben. (Ein Albtraum im besten Fall! LOL)

Eine andere Sache, die Sie vielleicht betrachten möchten, ist CocoaPods. Ich habe es nicht benutzt, aber ich habe Freunde gehabt, die haben - sie mögen es, weil es beim lib-Management hilft - besonders, wenn man von einer Entwicklungsumgebung in eine andere geht.Ich muss es nächsten Monat wegen der Zxing-Weg-Unordnung verwenden, mit der sich jeder beschäftigen muss.

https://github.com/CocoaPods/CocoaPods

Letzte Empfehlung - Source Control verwenden wie kein Morgen gibt es !!!

+1

CocoaPods sieht fantastisch aus! Indem ich einfach jedes White-Label-Build-Ziel mit der Pod-Bibliothek verknüpfe, muss ich mich nicht länger darum sorgen, jedes einzelne White-Label-Build-Ziel manuell zu aktualisieren, wenn ich eine Bibliothek hinzufüge oder entferne. Vielen Dank! – RohinNZ

Verwandte Themen