2009-12-14 9 views
7

Ho un progetto Xcode abbastanza complesso (iPhone SDK), con molti obiettivi: 4 librerie statiche, test di unità, più app di esempio, un BuildAll che esegue uno script di shell e un Pacchetto che esegue un altro script di shell. Il target "BuildAll" crea una directory nel progetto con alcune sottodirectory con contenuti pronti per la distribuzione.Esegui script durante Pulisci/Pulisci Tutto in Xcode

Quando faccio clic su "Pulisci tutto", però, Xcode non sa di pulire la mia directory di distribuzione. Mi piacerebbe farlo Non riesco a trovare un modo per farlo - qualcuno sa come?


ci si sente come pulito e pulire tutte le realtà dovrebbe essere solo bersagli in Xcode, e dovrei essere in grado di aggiungere una fase di "Run Script". Non così, per quanto ne so.

BTW, la destinazione "BuildAll" gestisce la pulizia della directory di distribuzione, quindi questa non è la fine del mondo per me. È semplicemente fastidioso che "Clean All" in realtà non pulisca tutto nel mio caso particolare.

risposta

0

si può provare a Aggiungi> Nuova destinazione ...> Shell Script destinazione dal controllo-clic su un obiettivi nodo del Gruppi & Files.

Poi, dopo un doppio clic su un nodo Esegui scriptsi imposta alcuna pulizia-scenario utilizzando variabile di azione $ che può avere valori pulito, installare, ecc

E, infine, di recente creazione Script Script Target deve essere aggiunto alla destinazione principale come dipendenza.

+1

Il "Target Script Target" è diverso da un target vuoto con una "Fase di creazione script shell"? Ho aggiunto Fasi di creazione ai miei obiettivi dell'app e ho controllato la variabile d'ambiente $ ACTION, ma sembra che Xcode non esegua affatto lo script su pulito. – benzado

+2

Sì, sembra che gli obiettivi e le fasi di generazione abbiano flussi di lavoro diversi quando viene creato il progetto Xcode. – Stream

+1

Non funziona affatto con "Shell Script Target". Avrai bisogno di un "Target esterno", come dice il seguente link: http://log.yeahrightkeller.com/post/270155578/run-script-while-cleaning-in-xcode – moala

2

È possibile aggiungere una "Target esterno" che esegue la pulizia in uno script esterno e aggiungere tale destinazione come dipendenza di una delle destinazioni della libreria statica. Crea il bersaglio e trascinalo sotto una delle tue librerie statiche. Controlla l'azione usando la variabile d'ambiente $ ACTION nello script.

+0

È ancora aggiornato? Non riesco a trovare un'opzione "Target esterno" utilizzando Xcode 6 –

+1

senza informazioni ... cos'è questo $ ACTION var? ti dice quale fase di costruzione stai correndo? Non sapevo che le fasi di costruzione fossero eseguite durante la pulizia ... –