2015-02-02 7 views
6

Ho bisogno di archiviare uno schema specifico dal mio xcodeproj. Per fare questo ho eseguitoxcodebuild archivia tutti i target invece di uno

xcodebuild archive \ 
    -scheme $SCHEME \ 
    -target $TARGET \ 
    -archivePath $ARCHIVE_PATH 

Anche se ho esplicitamente definire uno schema e di destinazione, il risultante xcarchive contiene entrambi i target e la chiamata di esportazione IPA di follow-up si lamenta con

error: the archive at path '<path>.xcarchive' is not a single-bundle archive 
** EXPORT FAILED ** 

Perché xcodebuild prodotti un archivio con più bundle?

+0

'scheme' e' target' si escludono a vicenda. Potresti provare a passare lo schema solo? – Opal

+0

Non funziona in entrambi i casi. Già provato –

+1

Per gli altri che hanno potenzialmente questo problema, il mio problema non era impostare SKIP_INSTALL su YES per le librerie statiche –

risposta

5

Era un problema con gli schemi del progetto. Ho creato nuovi Schemi duplicando quello originale invece di aggiungerne uno nuovo. Lo schema risultante elencava quindi 2 bersagli nella sezione di build invece di uno (solo dio sa perché) e Xcode non mi permetteva di rimuovere l'altro bersaglio.

Una volta rimossi tutti gli schemi e creati da zero, tutto ha funzionato bene.

+0

Ora devi solo accettare la tua risposta. – orkoden

+2

"È possibile accettare la propria risposta in 2 giorni." :) –

+1

Puoi spiegare dove intendevi elencare due target nella sezione di build? nello schema-> build o nelle impostazioni del progetto da qualche parte? – Jeremie

2

Un altro scenario in cui ciò accade è quando il sottoprogetto (Dipendenza destinazione) ha Skip Install impostato su No nelle impostazioni di generazione.

Per trovare quale sottoprogetto, controllare il contenuto all'interno dell'archivio. La cartella prodotti dovrebbe avere solo un prodotto.

Nel mio caso un sottoprogetto era una libreria dinamica ed è stato aggiunto nell'archivio sotto il percorso /<path to archive>/Products/usr/lib/<library>.