Ho due progetti in uno spazio di lavoro Xcode. Vorrei aggiungere il prodotto build del progetto B come risorsa bundle nel progetto A. Ho già configurato lo schema del progetto A per la prima volta per creare il progetto B. Esiste un modo corretto per farlo oltre ad aggiungere semplicemente il prodotto build del progetto B dal file system?È possibile aggiungere un prodotto di costruzione da un progetto diverso come risorsa di raggruppamento in XCode?
risposta
Sono stato in grado di aggiungere il prodotto del progetto B al progetto A nel modo seguente. Ho semplicemente trascinato il prodotto del progetto B da Project Navigator nel riquadro Copia risorse pacchetto del progetto A. Può essere complicato in quanto non è possibile avviare il trascinamento selezionando l'icona del prodotto - sono riuscito solo trascinando il titolo. Non era necessario rendere il progetto B una dipendenza target dell'obiettivo A; la dipendenza della build può essere gestita invece da schemi (che era il modo in cui inizialmente avevo configurato lo spazio di lavoro).
È possibile passare alla scheda F delle fasi di costruzione del progetto e aggiungere il prodotto del progetto B alla fase di compilazione "Copia risorse pacchetto". Assicurati di aggiungere una dipendenza per il progetto B.
Il progetto del progetto di B non viene visualizzato come opzione come dipendenza di destinazione (non è un obiettivo del progetto a, condivide semplicemente un'area di lavoro) né è disponibile per essere aggiunto come risorsa di raggruppamento. Grazie però ... cercando di capire se un prodotto di un progetto diverso può essere aggiunto come una risorsa bundle. – ctpenrose
Se si trascina il progetto B nel progetto A, è possibile selezionare i target del progetto B come dipendenze e risorse. –
Questo mi fa un passo avanti, grazie. Ciò mi consente di aggiungere il progetto B come dipendenza di destinazione. Sfortunatamente, il prodotto del progetto B non viene ancora visualizzato come opzione quando provo ad aggiungere una risorsa bundle al progetto A. – ctpenrose
La stessa domanda viene in qualche modo risolta qui: https://stackoverflow.com/a/7118177/470225. Non è una soluzione perfetta, ma sta funzionando per me. È possibile aggiungere una fase di compilazione "Esegui script" per copiare il pacchetto di risorse nel binario dell'app. Ecco lo script:
cp -R -f $BUILT_PRODUCTS_DIR/MyBundle.bundle $BUILT_PRODUCTS_DIR/$CONTENTS_FOLDER_PATH/
dovrebbe essere cp -R -L -f $BUILT_PRODUCTS_DIR/MyBundle.bundle $BUILT_PRODUCTS_DIR/$CONTENTS_FOLDER_PATH/
con -L
, senza questo, durante l'archiviazione solo link simbolico viene copiato il percorso della cartella contenuti e app si blocca ragione fosse perché non vedono risorse reali.
Sono contento che tu abbia funzionato. :) –
Grazie per l'aiuto :) – ctpenrose