2015-11-30 28 views
13

Ho il seguente obiettivo: creare ed eseguire un'applicazione .app utilizzando xcodebuild e ios-sim.Creare ed eseguire un'app sul simulatore utilizzando xcodebuild

Sto usando il seguente script per creare l'applicazione.

xcrun xcodebuild \ 
    -scheme $XCODE_SCHEME \ 
    -project $XCODE_PROJECT \ 
    -configuration Debug \ 
    -destination generic/platform=iOS \ 
    -derivedDataPath \ 
    build 

Poi per la sua esecuzione, sto usando

ios-sim launch MyApp.app/ --devicetypeid "iPhone-6-Plus, 9.1" 

Ogni volta che ricevo il seguente messaggio:

programma specificato dal servizio non contiene una delle richieste architetture :?

Cosa sta succedendo, che l'app non funziona?

Nota: se corro il secondo comando (ios-sim...) contro la .app costruita da Xcode (quello contenuto nei dati derivati) la procedura funziona bene.

+0

Per pura curiosità, perché stai facendo questo invece di correre e costruire un progetto in XCode? –

+0

Sei sicuro di avere questo simulatore installato? dall'errore sembra che il dispositivo specifico che stai tentando di eseguire non esista nel tuo computer –

+1

@HaydenHolligan Necessario per eseguire l'automazione del test. –

risposta

20

Ok. Capito il problema.

È necessario specificare il destination corretto. Per esempio.

xcrun xcodebuild \ 
    -scheme $XCODE_SCHEME \ 
    -project $XCODE_PROJECT \ 
    -configuration Debug \ 
    -destination 'platform=iOS Simulator,name=iPhone 6 Plus,OS=9.1' \ 
    -derivedDataPath \ 
    build 

In questo modo Xcode creerà la cartella (denominata build) contenente i prodotti (in particolare sguardo Debug-iphonesimulator). La dir build viene creata all'interno della dir su cui viene eseguito il comando xcodebuild.

Ora si può puntare quella cartella, al fine di eseguire il comando ios-sim (vedi ios-sim per ulteriori riferimenti) oppure simctl (vedi iOS 8: Building custom simulators e Build And Run iOS Apps In Commmand Line per maggiori informazioni).

+0

come passare lo stesso simulatore con ID diversi in -destination? –

+0

Come se avessi 2 simulatori di iPAD i) piattaforma: Simulatore iOS, id: 0F9084E0-4E0D-43F7-AD3D-AB959744BD09, OS: 9.3, nome: iPad 2 ii) piattaforma: iOS Simulator, id: 4E05355C-EF57 -4771-96D4-0F9FCF24A0D2, OS: 9.3, nome: iPad 2 –

+0

Come eseguire un progetto basato su spazio di lavoro, ad esempio un progetto contenente più progetti di pod. Si prega di incollare qui il comando completo per eseguire a -workspace –