Ci sono diversi motivi per cui si vede questo errore, ma si riduce alle dipendenze. Se selezioni uno schema che costruisce un target iOS, allora non hai problemi usando il seguente comando. Si noti che ho utilizzato iphoneos
per selezionare automaticamente l'ultimo SDK.
xcodebuild -configuration Release -target "ios" -sdk iphoneos -scheme "ios" build
Il problema che si sta verificando viene attivato a causa di una dipendenza dall'estensione watchOS. Ho creato un progetto di esempio e aggiunto un'applicazione watchOS. Nella scheda Fasi di costruzione, vedi la sezione Dipendenze che la destinazione iOS ha una dipendenza dalla destinazione WatchOS.
Questo non è un problema se si specifica un destination
nel comando build. Ma dà un problema se dici a xcodebuild
di compilare con uno specifico SDK. Perché? Perché la destinazione WatchOS non può essere costruita con l'SDK di iOS. Se si specifica iphoneos
come SDK, la compilazione fallirà.
Specificare una destinazione risolve il problema, ma sappi che stai utilizzando un simulatore specifico. Se si utilizza lo stesso comando su una macchina diversa e tale simulatore non è disponibile, la compilazione fallirà.
Per essere onesti, non so se c'è una via di mezzo che consente di selezionare l'ultimo SDK e di utilizzare ancora l'SDK corretto per ciascun target, indipendentemente dalle dipendenze. Se si rimuove la dipendenza della destinazione iOS, il comando di generazione sopra riportato non dovrebbe fallire. Potrebbe anche essere necessario aggiornare lo schema che stai utilizzando.
fonte
2015-12-11 08:26:18
Rimuovere l'argomento -sdk è il trucco anche per me. Ottimo suggerimento. +1 – DEAD10CC
in questo modo sto ancora avendo problemi se voglio eseguire test, in particolare ricevo: Si è verificato un problema nell'avvio del pacchetto di test: il test con l'SDK di 'iphoneos' non è ancora supportato. Invece, prova con il simulatore SDK impostando '-sdk iphonesimulator'. –
@dev_mush, è necessario fornire '-destination' per eseguire i test. – Nekto