Beste Strategie für die Automatisierung mehrerer Builds aus einem einzelnen White-Label-xcode-Projekt?

9

Ich untersuche den besten Ansatz zur Automatisierung unseres Build-Prozesses. Ich habe meine eigenen Ideen (durch Erfahrung in einem früheren Nicht-iOS-Projekt), brauche aber gute Argumente für und gegen verschiedene Möglichkeiten.

Ziel: Ein einzelnes xcode-Projekt mit einem einzigen Ziel (think white-label) muss in 1..N verschiedenen Geschmacksrichtungen (konkrete Brandings) mit minimaler Benutzerinteraktion und minimalem technischen Wissen aufgebaut werden. Für AdHoc und / oder AppStore.

Das bedeutet im Wesentlichen, pro Build zu spezifizieren; ein Ordner mit Icons + Splashscreen, einem Paket mit markenspezifischen Ressourcen und (vermutlich?) der Info.plist, unter Angabe von Appname, Bundle-ID, etc.

Fragen, die beachtet oder geklärt werden müssen;

  • Manuelles Erstellen einer einzelnen Marke über Idiot-Proof GUI (wählen Sie eine git Branch / Tag, geben Sie eine bestimmte Marke, konfigurieren Sie die App z. IAP-enabled, server-domainname, etc - wird in die info.plist)
  • In früheren manuellen Tests wurde der Name der ausführbaren Datei festgelegt das plist hat nicht funktioniert? Sorry, habe das genaue Problem vergessen .. vielleicht war nur ein Xcode Debug Buildconfig Problem, nicht relevant für ein Distributionsaufbau?
  • Code-Signierung?!? Kann das Profil angegeben werden? während der Fahrt? Einige Marken müssen mit den eigenen gebaut werden Profil.

Mein persönliches Gefühl: Hudson oder CruiseControl + Xcode plugin.

Es scheint eine Menge Dokumentation für eine Xcode-Lösung zu geben, und ich habe diese in einem Flex-Projekt gesehen, an dem ich gearbeitet habe, mit fast genau den gleichen White-Label / Branding-Anforderungen. Natürlich wurde das Ant-Skript verwendet und es wurde KEINE Verhaltenskonfiguration beachtet. Das ist meine einzige Unsicherheit hier ... Ich vermute, dass es irgendwo hart codiert werden müsste, aber das ist nicht die Antwort, die einigen Leuten gefallen wird. Es besteht der Wunsch, die verschiedenen App-Konfigurationseinstellungen (Server-URL, Funktion Foo unterstützt, ist die Ansicht X angezeigt usw. usw.) über ein GUI-Formular beim manuellen Aufbau angeben zu können. Ich bin mir nicht sicher, wie einfach es wäre, das in eine typische Hudson- oder CC-Konfiguration zu verwandeln.

Und deshalb wurde ein Vorschlag gemacht, eine OSX-App zum Aufbau unserer Kunden zu schreiben. Die Theorie ist, nette saubere nicht-Tech-UI für die Eingabe aller notwendigen Metadaten & amp; App-Einstellung und eine große glänzende grüne Taste mit der Aufschrift "Build". Aber ich persönlich bin skeptisch, dass dieser Ansatz flexibler oder einfacher zu implementieren ist als eine klassische CI-Lösung.

Also die Frage ist im Grunde, was vorzuziehen ist; ein klassischer serverbasierter, integrierter Versionskontrollansatz oder ein benutzerdefiniertes OSX-Dienstprogramm?

Was auch immer wir wollen, es wird mit ziemlicher Sicherheit eine Bedingung sein, um es in 2 oder 3 Tagen (definitiv weniger als eine Woche) in Betrieb zu nehmen.

    
Rich 27.09.2011, 13:40
quelle

3 Antworten

0

IMHO können Sie alle Probleme mit verschiedenen Zielen von XCode lösen.

Jedes Ziel teilt den Code, aber es könnte:

  • Unterschreiben mit verschiedenen Profilen
  • benutze diferent plist: das bedeutet, verschiedene Namen zu haben ..
  • verwenden Sie verschiedene Markenbilder. Sie müssen nur das Bild mit demselben Namen benennen und das korrekte Ziel im Dateiinspektor auswählen.
  • Erstellen Sie mit einem Klick in XCode.

Ich hoffe, das hilft

    
Eva Madrazo 24.09.2014 09:59
quelle
0

Eine extrem spätere Antwort, aber der Ansatz, den ich wählen würde, wäre, das White Label IPA zu erstellen und dann ein Skript zu erstellen, um: 1. Entpacken Sie es (ändern Sie die .ipa-Dateierweiterung in .zip). 2. Ändern Sie die Assets. Aktualisieren Sie die Datei info.plist (mit dem Befehl Plistbuddy) Zip es noch einmal. Gib den Code zurück.

Sehen Sie sich dieses Skript als Ausgangspunkt an: Ссылка

    
Ronan 15.02.2015 08:46
quelle
0

Sehr späte Antwort. Aber ich würde mit verschiedenen .xcconfig -Dateien und mehreren Schemata gehen. Die Schema-Namen könnten eine Kombination von target/brand sein.

    
Larusso 22.04.2016 13:49
quelle