Chcę uruchomić symulator iPhone'a z wiersza poleceń.
do tej pory korzystałem z poniższego polecenia
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Applications/iPhone Simulator.app/Contents/MacOS/iPhone Simulator -SimulateDevice
-SimulateDevice służy do uruchamiania określonego typu urządzenia
Teraz z Xcode 6 ścieżka i aplikacja zostały zmienione na
/Applications/Xcode.app/Contents/Developer/Applications/iOS Simulator.app/Contents/MacOS/iOS Simulator
ale niestety opcja -SimulateDevice teraz nie działa. Mogę uruchomić symulator, ale nie mam opcji określania, który mam uruchomić
Czy ktoś znalazł alternatywę dla tego z Xcode 6?
źródło
xcrun simctl
wyświetli listę poleceń. Moim zdaniem są one dość oczywiste.xcrun simctl boot <device id>
zamiastxcrun instruments -w...
booted
jakobooted
po prostu dowolnie wybrać jedną z obutych urządzeń na symulatorze.W przypadku Xcode 6, jeśli chcesz, aby aplikacja iOS Simulator.app uruchamiała określone urządzenie po uruchomieniu, możesz uruchomić to z wiersza poleceń:
open -a "iOS Simulator" --args -CurrentDeviceUDID <DEVICE UDID>
gdzie możesz znaleźć UDID urządzenia, z którego chcesz dokonać rozruchu:
xcrun simctl list
W Xcode 7 nazwa aplikacji została przemianowana na Simulator.app, więc należy odpowiednio zaktualizować powyższe do:
open -a Simulator --args -CurrentDeviceUDID <DEVICE UDID>
źródło
/usr/bin/xcrun simctl list
wyświetla listę symulatorów dostępnych dla zwykłego Xcode. Jednakopen -a "iOS Simulator"
uruchamia symulator wersji beta 6.2, który oczekuje identyfikatorów urządzeń z symulatora wersji beta. Jak mogę określić, który symulator mam uruchomić (zwykły czy beta)?defaults read com.apple.iphonesimulator
i zastąpić dowolne z nich w wierszu poleceń. Simulator.app używa tylko identyfikatorów UDID do jednoznacznej identyfikacji urządzeń. Nie możesz użyć nazwy.Dla xcode 7:
open /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app --args -CurrentDeviceUDID <DeviceUDID>
Pobierz swój symulator udid's od
xcrun simctl list
źródło
Aby uruchomić symulator z uruchomionym określonym urządzeniem Używam podkomendy Lista urządzeń, aby uzyskać listę wszystkich dostępnych urządzeń
to polecenie wyświetli listę dostępnych urządzeń wraz z identyfikatorami UDID i statusami
Następnie uruchamiam aplikację symulatora, określając urządzenie z opcją -CurrentDeviceUDID
UWAGA: zastąp poprawnym UDID z listy.
Na przykład, jeśli chcemy uruchomić symulator z iPadem (uruchomiona% generacji):
AKTUALIZACJA 23.05.2018
Z Xcode 9.3 CurrentDevice UDID opcja nie działa dla mnie, jako obejście, muszę użyć simctl do uruchomienia urządzenia w symulatorze przed jego otwarciem.
Możesz tworzyć, usuwać, usuwać, uruchamiać, wyłączać i aktualizować symulatory za pomocą simctl.
Aby uzyskać listę prawidłowych typów urządzeń i środowisk wykonawczych
źródło
Aby uruchomić symulator:
Uruchomi się w trybie bezgłowym. Aby symulator był widoczny:
xcrun simctl boot
jest prostsze niżxcrun instruments -w
.instruments
wymaga pełnej nazwy urządzenia.źródło
Możesz określić wersję sprzętu i iOS za pomocą opcji -w. Format to
Na przykład:
instruments -w "iPhone Retina (3.5-inch) - Simulator - iOS 7.1"
.Otrzymasz dostępne kombinacje hardvare-iOS za pomocą
instruments -w help
polecenia.źródło
instruments -s devices
aby uzyskać listę urządzeń. Jednak po uzyskaniu nazwy urządzenia samo wywołanieinstruments -w <device>
prawdopodobnie spowoduje błąd, ponieważ instrumenty będą próbowały zapisać ślad w katalogu głównym dysku. Możesz chcieć określić ścieżkę do śledzenia, do którego pomyślnie zapisze.-D
do określenia katalogu wyjściowego dla dokumentów .trace.Zweryfikowano w Xcode 9.4.1
Lista urządzeń w NAPRAWDĘ ŁADNYM FORMACIE:
~/Library/Developer/CoreSimulator/Devices/device_set.plist
Następnie chcesz uruchomić (otworzyć) aplikację Symulator i upewnić się, że została uruchomiona nowa instancja aplikacji.
Aplikacja jest tutaj:
/Applications/Xcode.app/Contents/Developer/Applications/Simulator.app
A format, którego użyjesz, jest taki:
open -n -a <SimulatorPath> --args -CurrentDeviceUDID <SimDeviceTypeUDID>
Tak więc, gdybym chciał uruchomić powyższy Symulator, zrobiłbym to.
open -n -a /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app --args -CurrentDeviceUDID AB335FAF-E3E3-4AE9-A0AF-D1C6AEB5FBD4
Jasna cholera! Właśnie to przetestowałem i działa na Mac OS 10.11.6. Teraz kolejną sztuczką jest nakazanie symulatorowi otwarcia naszej zainstalowanej aplikacji. Jeszcze mnie tam nie ma. Mam nadzieję że to pomoże. Podziękowania dla https://stackoverflow.com/users/726106/jeremy-huddleston-sequoia za szczegółowe wyjaśnienie.
źródło
Uruchom to polecenie. Aplikacja zostanie ponownie uruchomiona, po czym nastąpią zmiany. Nie trzeba go ponownie odbudowywać.
Dla listy devicetypeid:
źródło