2015-11-30 10 views
13

Mam następujący cel do osiągnięcia: zbuduj i uruchom aplikację .app przy użyciu xcodebuild i ios-sim.Tworzenie i uruchamianie aplikacji na symulatorze przy użyciu xcodebuild

Korzystam z poniższego skryptu do zbudowania aplikacji.

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

Następnie na uruchomienie go używam

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

każdym razem, kiedy pojawia się następujący komunikat:

Program określony przez serwis nie zawiera jednego z żądanych architektur :?

Co się dzieje, że aplikacja nie działa?

Uwaga: jeśli uruchomię drugą komendę (ios-sim...) przeciwko .app zbudowany z Xcode (jeden zawarty w danych pochodzących) procedura działa dobrze.

+0

Z czystej ciekawości, dlaczego robisz to zamiast po prostu uruchamiać i budować projekt w XCode? –

+0

Czy na pewno masz zainstalowany ten symulator? z błędu wynika, że ​​konkretne urządzenie, które próbujesz uruchomić, nie istnieje w twoim komputerze. –

+1

@HaydenHolligan Potrzebny do automatyzacji testów. –

Odpowiedz

20

Ok. Odkryłem problem.

Musisz podać poprawną destination. Na przykład.

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

W ten sposób Xcode stworzy folder (tzw build) zawierający produkty (w szczególności spojrzeć na Debug-iphonesimulator). Katalog build jest tworzony wewnątrz katalogu, w którym uruchamiana jest komenda xcodebuild.

Teraz można wskazać ten folder w celu uruchomienia komendy ios-sim (patrz ios-sim cej referencji) lub simctl (patrz iOS 8: Building custom simulators i Build And Run iOS Apps In Commmand Line aby uzyskać więcej informacji).

+0

jak przekazać ten sam symulator z różnymi identyfikatorami w -destination? –

+0

Tak jak mam 2 symulatory iPADs i) platforma: Symulator iOS, identyfikator: 0F9084E0-4E0D-43F7-AD3D-AB959744BD09, OS: 9.3, nazwa: iPad 2 ii) platforma: Symulator iOS, id: 4E05355C-EF57 -4771-96D4-0F9FCF24A0D2, OS: 9.3, nazwa: iPad 2 –

+0

Jak uruchomić projekt oparty na obszarze roboczym, tj. Projekt zawierający wiele projektów strączkowych. Proszę wkleić tutaj polecenie, aby uruchomić a-workspace –

Powiązane problemy