2010-12-13 15 views
0

Ich habe eine iPad-App, die in mehreren verschiedenen freisetzbaren Geschmacksrichtungen kommen kann, und ich versuche zu entscheiden, wie man diese alternativen Veröffentlichungen am besten macht. Sie haben nur wenige Unterschiede im Quellcode und unterscheiden sich hauptsächlich in Ressourcendateien (XML und sehr viele Binärdateien).Sollte ich ein xcode-Projekt oder #define Abschnitte duplizieren?

1) Sollte ich das Projekt duplizieren und die Handvoll Quelldateien abzweigen und die entsprechenden Ressourcen für jeden einzeln hinzufügen? Dies scheint eher ein Wartungsaufwand zu sein, da ich dem Projekt Dateien hinzufüge und andere grundlegende Dinge mache, als freigegebene Dateien zu bearbeiten.

2) Oder sollte ich #defines verwenden, um den passenden Geschmack zu erstellen, den ich jederzeit möchte, und wenn ich ganze Dateien dementsprechend entscheide? Dies scheint einfacher zu sein, aber mein Verdacht ist, dass ich keine einfache Möglichkeit finden kann, Ressourcendateien auszuschließen/einzuschließen, und das wäre ein Deal Breaker.

Irgendwelche Vorschläge zum Umgang mit dem Ressourcenproblem in Option 2, oder wenn es einen alternativen Ansatz insgesamt gibt, der besser ist?

Antwort

2

Was ist mit dem Erstellen separater Ziele in einem einzelnen XCode-Projekt?

Jedes Ziel muss die Dateien enthalten, die für diese App geeignet sind; kein Bedarf für ifdefs auf diese Weise.

+0

Würde ich dies auch mit den Ressourcen im Projekt tun können? I.e. Wenn ich 200 Dateien in meinen Ressourcen habe, die ich für Proj 1 und 200 verschiedene für Proj 2 möchte, kann ich angeben, welche über die Zielkonfigurationsinformationen enthalten sein sollen? Weißt du, was diese Einstellung ist? – Joey

+0

Sicher. Jedes Ziel hat seine eigene Liste von Dateien (Quellen, Ressourcen, Bibliotheken), die enthalten sein sollen. Sie können steuern, welche Dateien sich in einem Ziel befinden, indem Sie die Dateien in die Phase "Bündelressourcen kopieren" des Ziels ziehen. Sie können auch sehen/ändern, welche Dateien im aktuellen Ziel enthalten sind, indem Sie das Kontrollkästchen in der Ziel-Spalte (Bullseye-Symbol) der Dateiliste im Hauptprojektfenster aktivieren. –

+0

Das hat gut funktioniert, um die einzelnen Ziele zu bauen. Ich hatte versucht, die benutzerdefinierte Einstellung EXCLUDED_SOURCE_FILE_NAMES zu verwenden, und es verursachte Probleme, die gleichnamige Dateien in verschiedenen Ordnern ausschlossen, aber Ihre Herangehensweise löste irgendwelche Knicke aus. Allerdings bekomme ich dieses Problem, wenn das Erstellen eines Ziels das andere Ziel zu denken scheint, dass es aktuell ist. Sollte ich einfach die Einstellungen für den Build-Speicherort "Per-config build products path" und "per-config intermediate build files path" ändern, um dies zu beheben, oder habe ich bis zu diesem Punkt etwas falsch gemacht? – Joey