2009-10-29 19 views
26

Sto creando una libreria statica su Mac OS X per uno dei nostri clienti, oltre a una piccola app per la linea cmd per testare la lib statica. Il progetto della linea cmd ha 2 percorsi di ricerca della libreria extra, il che significa che stavo collegando alla versione Debug in modalità Release e praticamente sono diventato pazzo, quindi ho cercato di sbarazzarmi di questi due percorsi, ma non sono riuscito a trovare dove sono stati specificati . Stavo cercando le informazioni sul progetto, ma risulta che sono state specificate nelle informazioni di destinazione.Xcode: impostazioni del progetto e impostazioni target

Non capisco la distinzione ?! Perché ci sono 2 set di impostazioni, che sono essenzialmente uguali ?! Qualcuno può per favore illuminarmi?

risposta

39

Un progetto può contenere più destinazioni. Ad esempio, un'app che scrivo ha quattro: l'app stessa, un plug-in Quick Look, un framework e un bundle che contiene funzionalità specifiche per Mac OS 10.6 che possono essere caricate dinamicamente.

Le impostazioni del progetto si applicano a ogni singolo target nel progetto. Ogni obiettivo può quindi sovrascrivere le singole impostazioni se necessario - ad esempio, l'SDK target del mio progetto è impostato su 10.5, ma il pacchetto specifico 10.6 ha il SDK target impostato su 10.6.

In alcuni casi, alcune impostazioni non hanno senso per essere in Impostazioni progetto - uno di questi, immagino, sono percorsi di ricerca.

+0

Domanda corollaria: come dovrei includere la libreria statica nel progetto di app della linea cmd? Trascinando il drag-n nella lista dei file sorgente? O dalle impostazioni di compilazione? – vectorizor

+4

@iKenndac, puoi spiegare perché "alcune impostazioni non hanno senso essere nelle Impostazioni progetto"? Ho solo un obiettivo in ogni progetto e sono ancora confuso sull'impostazione dei percorsi di ricerca. – topace

8

Spesso si hanno più destinazioni in un singolo progetto: ad esempio, si potrebbe avere un progetto di framework con un obiettivo da costruire come un pacchetto dinamico .framework e un obiettivo per costruire una lib statica. Oppure la tua app potrebbe avere un obiettivo per la creazione dell'app stessa e un obiettivo per la creazione di uno strumento da riga di comando ausiliario che è necessario installare.

Laddove possibile, suggerisco di modificare le impostazioni al livello più alto (nelle impostazioni del progetto e di modificare contemporaneamente le configurazioni di debug &) e solo personalizzare le impostazioni di destinazione quando necessario. Ancora meglio, sposta il maggior numero possibile di impostazioni nei file xcconfig, che sembrano un modo molto più esplicito per specificare la configurazione della tua build.

Problemi correlati