2011-12-06 5 views
9

Ho un lavoro contenente 2 progetti:Utilizzando libreria statica e prodotti del pacco da Xcode 4 sottoprogetto

  1. Un progetto che ha 2 prodotti: una libreria statica e di un pacchetto di risorse
  2. Un progetto che costruisce un iOS app.

Il primo progetto è stato aggiunto come riferimento di sottoprogetto nel secondo progetto. Ho la libreria statica che va bene, si collega all'app, tutto va bene. Tuttavia, non riesco a includere il pacchetto di risorse nell'app.

Il pacchetto è stato aggiunto allo schema "Build" dell'app.

Ho provato trascinando il Resources.bundle in 'Build Copia Risorse' fase della app, ma che i risultati di questo errore in fase di costruzione:

.../DerivedData/MyProject-eyuldesiktlginanzifvzcfrtmgl/Build/Products/Debug-iphonesimulator/Resources.bundle: No such file or directory 

Così ho guardato la directory di dati derivati ​​ed io vedi Resources.bundle in

MyProject-eyuldesiktlginanzifvzcfrtmgl/Build/Products/Debug 

non

MyProject-eyuldesiktlginanzifvzcfrtmgl/Build/Products/Debug-iphonesimulator. 

presumo che ciò è becaus e il pacchetto non è specifico per la piattaforma. Così ho provato ad aggiungere una fase di costruzione per copiare il pacchetto nella Directory prodotti. Con conseguente questo errore di generazione:

.../DerivedData/MyProject-eyuldesiktlginanzifvzcfrtmgl/Build/Products/Debug-iphonesimulator/Resources.bundle depends on itself. This target might include its own product. 

Ma non c'è alcun file di debug-iphonesimulator/Resources.bundle, in modo da non vedere dove questa dipendenza proviene. Qualsiasi consiglio sarebbe molto apprezzato.

risposta

7

L'ho capito. Il problema è (come accennato in precedenza) che il bundle non è specifico per la piattaforma, quindi viene inviato alla directory Products/Debug mentre l'app restituisce la directory Products/Debug-iphonesimulator. Ho dovuto aggiungere una fase Run Script per copiare la risorsa nel pacchetto dell'app:

SRC="$BUILD_DIR/$CONFIGURATION/Resources.bundle" 
DEST="$BUILD_DIR/$CONFIGURATION$EFFECTIVE_PLATFORM_NAME/$FULL_PRODUCT_NAME" 
cp -R "$SRC" "$DEST" 
+0

Puoi spiegarmi come aggiungere questo script di esecuzione? –

+1

Qui vai: http://www.runscriptbuildphase.com – brianpartridge

+0

Questo è davvero fantastico. In realtà sto cercando di localizzare il mio SRC in "~/Xcode/DerivedData/MyTarget-blydmmnwjukedcdoelnbylneztfd/Build/Products/Debug-iphonesimulator" ma qui si ottiene "~/Xcode/DerivedData/MyTarget-blydmmnwjukedcdoelnbylneztfd/Build/Products/Debug". Potresti per favore aiutarmi con questo? –