As z Xcode 6, powinny być w stanie używać simctl
do osiągnięcia tego celu.
1) Pobierz listę dostępnych urządzeń:
xcrun simctl list devices
1a) Zakładając, że masz zainstalowany jq
, można go użyć, aby uzyskać tylko te urządzenia, które są aktualnie dostępne:
xcrun simctl list devices -j \
| jq -rc '.[] | .[] | .[] | select(.availability | contains("(available)")) '
1b) Lub nawet filtrować dalej przez iPhone'a lub iPada:
xcrun simctl list devices -j \
| jq -rc '.[] | .[] | .[] | select(.name | contains("iPhone"), contains("iPad")) | select(.availability | contains("(available)")) '
2) Po uzyskaniu UDID urządzenia chcesz zainstalować:
xcrun simctl install $DEVICE_UDID /path/to/your/app
2a) lub, jeśli chcesz po prostu zainstalować w uruchomionym urządzeniu:
xcrun simctl install booted /path/to/your/app
Gdzie to robi się naprawdę przydatny jest, jeśli aby uruchomić tę samą aplikację na wszystkich urządzeniach:
1) Reset/skasować wszystkie symulatory:
xcrun simctl erase all
2) Otwarte jedna instancja Simulator dla każdego testu:
open -n /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app
(Ignore the 'Booted' error and switch hardware.)
3) Get do identyfikatorów dostępnych urządzeń, które chcemy zainstalować:
DEVICES=$(xcrun simctl list devices -j | jq -rc '.[] | .[] | .[] | select(.name | contains("iPhone"), contains("iPad")) | select(.availability | contains("(available)")) | select(.state == "Booted") | .udid ')
4) zainstalować aplikację (który musi być zbudowany dla odpowiedniego symulatora SDK):
for device in DEVICES ; do xcrun simctl install $device /path/to/app ; done
5) dla wygody uruchomić aplikację na każdym urządzeniu:
for device in $DEVICES ; do xcrun simctl launch $device your.product.app.id ; done
Niestety, to już nie działa (używam iOS 7.1) – thomers
Przepraszam, powinienem być bardziej konkretny. Katalog nadal tam jest, pliki są kopiowane, ale symulator nie wyświetla aplikacji na trampolinie. – thomers
@thomers działa z iOS 7.1, wystarczy umieścić ten skrypt w folderze 'project_name.app' i zmienić nazwę' 6.0' na '7.1' (ale często zawiesza się). Następnie uruchom 'installApp' z tego katalogu. Więc jeśli mam mój 'project.app /' z 'projektem' wewnątrz. Zrobiłbym 'cd project.app /' i uruchomiłbym projekt './installApp'. Pozostawiam ten komentarz jako lepszą dokumentację dla przyszłych czytelników. – film42