2011-09-27 8 views
9

Sto ricercando il miglior approccio per automatizzare il nostro processo di compilazione. Ho le mie idee (attraverso l'esperienza su un precedente progetto non-iOS) ma ho bisogno di buoni argomenti a favore e contro varie possibilità.La migliore strategia per automatizzare più build da un singolo progetto xcode white label?

Obiettivo: un singolo progetto xcode con un singolo obiettivo (think white-label) deve essere costruito in 1..N diversi sapori (marchi in calcestruzzo) con interazione minima da parte dell'utente e conoscenze tecniche minime. Per AdHoc e/o AppStore.

In sostanza, ciò significa specificare per compilazione; una cartella contenente Icons + Splashscreen, un pacchetto contenente risorse specifiche del brand e (presumibilmente?) Info.plist, che specifica appname, bundle-id, ecc.

Problemi che devono essere rispettati o chiariti;

  • costruzione manuale di un unico marchio tramite interfaccia grafica a prova di idiota (scegliere un git ramo/tag, specificare una certa marca, configurare l'applicazione per esempio IAP-enabled, server di dominio, ecc - sarà scritto da the info.plist)
  • Nei test manuali precedenti, l'impostazione del nome dell'eseguibile in non ha funzionato? Spiacenti, ho dimenticato il problema esatto .. forse era solo un problema di buildconfig di Xcode Debug, non rilevante per lo sviluppo della distribuzione di ?
  • Code-Signing?!? È possibile specificare il profilo al volo? Alcune marche devono essere costruite con il profilo del cliente.

La mia sensazione personale: Hudson o CruiseControl + Xcode plug-in.

Sembra esserci molta documentazione in giro per una soluzione Xcode e l'ho vista in azione su un progetto Flex su cui ho lavorato, con quasi esattamente gli stessi requisiti white label/branding. Naturalmente, però, stava usando lo script Ant e non c'era alcuna configurazione comportamentale da rispettare. Questa è la mia unica incertezza qui ... sospetto che debba essere codificata da qualche parte, ma non è questa la risposta che farà piacere ad alcune persone. C'è il desiderio di essere in grado di specificare le varie impostazioni di app-config (URL del server, funzione è Foo supportato, è la vista X visualizzata, ecc. Ecc.) Tramite un modulo GUI, quando si costruisce manualmente. Non sono sicuro di quanto sarebbe facile calzare questo in una tipica configurazione Hudson o CC?

E quindi un suggerimento che è stato fatto è scrivere un'app OSX per costruire i nostri clienti. Essendo la teoria, un'interfaccia utente pulita e non tecnologica per l'immissione di tutte le necessarie impostazioni dei dati dei dati & e un grande pulsante verde lucido etichettato "Build". Ma personalmente sono scettico sul fatto che questo approccio sia più flessibile o più facile da implementare di una soluzione CI classica.

Quindi la domanda è fondamentalmente, cosa è preferibile; un classico server basato, controllo di versione integrato, approccio CI o un'utilità OSX personalizzata?

Qualsiasi cosa andremo a prenderlo sarà quasi certamente un requisito per farlo funzionare in 2 o 3 giorni (sicuramente meno di una settimana).

+1

Sto anche cercando qualcosa di simile. Hai mai trovato una soluzione? –

risposta

0

IMHO è possibile risolvere tutti i problemi utilizzando obiettivi diversi di XCode.

Ogni bersaglio condividerà il codice ma potrebbe:

  • essere la firma con diferent profili
  • uso diferent plist: questo implica avere nomi diversi .. immagini
  • uso del marchio spettacolo diverso. Devi solo nominare l'immagine con lo stesso nome e selezionare la destinazione corretta in File Inspector.
  • Costruisci con un clic in XCode.

Spero che questo aiuta

0

Estremamente tardi rispondere, ma l'approccio vorrei prendere sarebbe quello di creare l'etichetta bianca IPA, e quindi creare uno script per: 1. Decomprimerlo (cambiare il. estensione del file ipa a .zip). 2. Modificare le risorse. Aggiorna info.plist (usando il comando Plistbuddy) Zip di nuovo. Ridire il codice.

Vedi questo script come punto di partenza: https://gist.github.com/catmac/1682965

+0

Se hai solo pochi progetti di etichette bianche da fare, puoi adottare l'approccio menzionato altrove creando ogni volta un nuovo target. Tuttavia, questo può diventare difficile con un gran numero di obiettivi. – Ronan

0

risposta molto tardi. Ma vorrei andare con diversi file .xcconfig e più schemi. I nomi degli schemi potrebbero essere una combinazione di target/brand.

Problemi correlati