2011-05-13 21 views
17

Lo so, questo è stato chiesto alcune volte, ma principalmente per Xcode 3.x. Per l'iPad, ho due progetti entrambi residenti in uno spazio di lavoro comuneXcode 4: Come aggiungere dipendenza della cartella statica al progetto

  • Foo, un'applicazione in base alla vista e
  • Foolib, una biblioteca di cacao-Touch statica

l'ex seconda della quest'ultimo. Non riesco a capire come aggiungere questa dipendenza. Non è ben spiegato nella documentazione, così ho provato la seguente:

  1. Clicca sul progetto Foo nel riquadro di spostamento a sinistra,
  2. Selezionare Costruire Fasi la parte superiore ed espandere la sezione di destinazione Dipendenze
  3. Fare clic sul pulsante più, ma l'elenco risultante è vuoto.

Ho anche provato a trascinare/rilasciare il file .a in quella sezione, con scarso successo. Inoltre, la documentazione indica

Se il prodotto di costruzione di un progetto in un'area di lavoro dipende dal prodotto di costruzione di un altro progetto nell'area di lavoro (ad esempio, se un progetto crea una libreria utilizzata dall'altro progetto), Xcode scopre tali dipendenze implicite e costruisce nella sequenza corretta.

Mi chiedo come Xcode scopra queste dipendenze. Apple sta dicendo che non devo assolutamente aggiungere questa dipendenza target? Ma come potrebbe Xcode scoprire che si sta usando l'altro?

Ultimo ma non meno importante, avrò bisogno di ottenere i file .h da Foolib a Foo in qualche modo. Qual è il modo consigliato per farlo? Ovviamente, non voglio semplicemente copiarli. Con i framework vengono inclusi i file header, ma cosa fanno le persone in genere quando lavorano con le librerie statiche che loro stessi sviluppano in parallelo.

Una spinta nella giusta direzione sarebbe molto apprezzata. Grazie.

risposta

13

In generale Xcode 4 sembra scoprire le dipendenze automaticamente come implica il foglio Modifica schema. Altri sviluppatori hanno menzionato che le dipendenze non vengono automaticamente rilevate e richiedono di elencarle esplicitamente:

Quindi, Modifica schema -> Crea -> aggiungi obiettivi dallo spazio di lavoro.

Per quanto riguarda i file di intestazione della libreria statica, Xcode 4 sembra avere un problema, almeno con il completamento del codice e l'evidenziazione della sintassi. L'unico modo in cui riesco a funzionare correttamente con le classi nelle librerie statiche per trascinare una copia dei file di intestazione in questione in una posizione in una cartella di gruppo nel progetto principale. Notare che è necessario deselezionare Aggiungi a destinazione ... che si occupa dell'evidenziazione della sintassi e del completamento del codice. Il resto dovrebbe essere gestito dando il corretto percorso di ricerca dell'intestazione. Quello sarebbe Percorsi di ricerca intestazione utente = $ (BUILT_PRODUCTS_DIR) - a seconda di come hai impostato le tue preferenze di posizione.

Vedi: this link

+1

Grazie per quello. Quindi aggiungere l'Obiettivo allo Schema rende Xcode costruire Foolib prima di Foo, giusto? Ma sembra che dovrei anche avere libFoolib.a in qualche modo nel mio progetto Foo, altrimenti, ricevo errori di linker, giusto?Al momento non riesco nemmeno a far costruire Foolib; beh, si costruisce con successo, ma poi libFoolib.a nel gruppo Prodotti rimane rosso. Qualche idea su cosa sta succedendo lì? – McKrassy

+0

Ho problemi con l'architettura AMR o i386 a seconda dell'esecuzione su un dispositivo o emulatore. Forse questo è il tuo problema (mentre si compila la libreria statica su un'architettura il progetto che usa questa libreria sta tentando di collegarsi a una libreria con architettura diversa ...) –

+0

@MPenades yup) in realtà devi leggere su ** Universal Libraries ** guarda questo tut http://www.raywenderlich.com/41377/creating-a-static-library-in-ios-tutorial – Resty

Problemi correlati