Ich möchte den iPhone-Simulator über die Befehlszeile starten.
Bis jetzt habe ich den folgenden Befehl verwendet
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Applications/iPhone Simulator.app/Contents/MacOS/iPhone Simulator -SimulateDevice
-SimulateDevice wird verwendet, um einen bestimmten Gerätetyp zu starten
Mit Xcode 6 wurde nun der Pfad und die App geändert
/Applications/Xcode.app/Contents/Developer/Applications/iOS Simulator.app/Contents/MacOS/iOS Simulator
Leider funktioniert die Option -SimulateDevice jetzt nicht. Ich kann den Simulator starten, habe aber keine Option, um anzugeben, welcher gestartet werden soll
Hat jemand mit Xcode 6 Alternativen dafür gefunden?
quelle
xcrun simctl
werden die Befehle aufgelistet. Meiner Meinung nach sind sie ziemlich selbsterklärend.xcrun simctl boot <device id>
stattxcrun instruments -w...
booted
wiebooted
wird nur willkürlich eine der gebootet Geräte auf dem Simulator wählen.Wenn Sie mit Xcode 6 möchten, dass iOS Simulator.app beim Start ein bestimmtes Gerät startet, können Sie dies über die Befehlszeile ausführen:
open -a "iOS Simulator" --args -CurrentDeviceUDID <DEVICE UDID>
Hier können Sie die UDID des Geräts ermitteln, von dem Sie booten möchten:
xcrun simctl list
Mit Xcode 7 wurde die Anwendung in Simulator.app umbenannt, daher sollten Sie die obigen Angaben entsprechend aktualisieren:
open -a Simulator --args -CurrentDeviceUDID <DEVICE UDID>
quelle
/usr/bin/xcrun simctl list
sind die Simulatoren zur Verfügung regelmäßig Xcode. Allerdingsopen -a "iOS Simulator"
startet den 6.2 Beta - Simulator, der den Geräte - IDs aus dem Beta - Simulator erwartet. Wie kann ich angeben, welchen Simulator ich starte (regulär vs. Beta)?defaults read com.apple.iphonesimulator
und alle in der Befehlszeile überschreiben. Simulator.app verwendet nur die UDIDs, um die Geräte eindeutig zu identifizieren. Sie können den Namen nicht verwenden.Für xcode 7:
open /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app --args -CurrentDeviceUDID <DeviceUDID>
Holen Sie sich Ihren Simulator udid's von
xcrun simctl list
quelle
Um einen Simulator mit einem bestimmten gebooteten Gerät zu starten, verwende ich den Unterbefehl Liste Geräte , um die Liste aller verfügbaren Geräte abzurufen
Dieser Befehl gibt eine Liste der verfügbaren Geräte mit ihren UDIDs und Status aus
Dann starte ich die Simulator-App, die ein Gerät mit der Option -CurrentDeviceUDID angibt
HINWEIS: Ersetzen Sie die durch eine gültige UDID aus der Liste.
Wenn wir beispielsweise den Simulator mit einem Ipad starten möchten (% Generation gebootet):
UPDATE 23/05/2018
Mit Xcode 9.3 CurrentDevice funktioniert die UDID-Option bei mir nicht. Um dieses Problem zu umgehen, muss ich simctl verwenden, um das Gerät im Simulator zu starten, bevor ich es öffne.
Mit simctl können Sie Simulatoren erstellen, löschen, löschen, starten, herunterfahren und aktualisieren.
Um die Liste der gültigen Gerätetypen und Laufzeiten abzurufen
quelle
So starten Sie einen Simulator:
Es wird als Headless-Modus gestartet. So machen Sie den Simulator sichtbar:
xcrun simctl boot
ist einfacher alsxcrun instruments -w
.instruments
erfordert den vollständigen Gerätenamen.quelle
Sie können die Hardware- und iOS-Version mit dem Flag -w angeben. Das Format ist
Zum Beispiel:
instruments -w "iPhone Retina (3.5-inch) - Simulator - iOS 7.1"
.Mit dem
instruments -w help
Befehl erhalten Sie die verfügbaren Hardvare-iOS-Kombinationen .quelle
instruments -s devices
diese Option , um eine Liste der Geräte abzurufen. Sobald Sie jedoch den Gerätenamen haben, führt ein einfacher Aufrufinstruments -w <device>
wahrscheinlich zu einem Fehler, da das Gerät versucht, eine Ablaufverfolgung in das Stammverzeichnis Ihres Laufwerks zu schreiben. Möglicherweise möchten Sie einen Pfad für die Ablaufverfolgung angeben, in die erfolgreich geschrieben werden soll.-D
Geben Sie zum Ausarbeiten des Kommentars von @ MichaelTeper ein Ausgabeverzeichnis für die .trace-Dokumente an.Verifiziert in Xcode 9.4.1
Geräteliste in einem WIRKLICH SCHÖNEN FORMAT:
~/Library/Developer/CoreSimulator/Devices/device_set.plist
Anschließend möchten Sie Ihre Simulator-App ausführen (öffnen) und sicherstellen, dass eine neue Instanz der App gestartet wird.
Die App ist da:
/Applications/Xcode.app/Contents/Developer/Applications/Simulator.app
Und das Format, das Sie verwenden würden, ist wie folgt:
open -n -a <SimulatorPath> --args -CurrentDeviceUDID <SimDeviceTypeUDID>
Wenn ich den obigen Simulator starten wollte, würde ich dies tun.
open -n -a /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app --args -CurrentDeviceUDID AB335FAF-E3E3-4AE9-A0AF-D1C6AEB5FBD4
Heiß verdammt! Ich habe es gerade getestet und es funktioniert unter Mac OS 10.11.6. Der nächste Trick besteht nun darin, dem Simulator zu sagen, dass er unsere installierte App öffnen soll. Ich bin noch nicht da Hoffe das hilft. Vielen Dank an https://stackoverflow.com/users/726106/jeremy-huddleston-sequoia für seine ausführliche Erklärung.
quelle
Führen Sie diesen Befehl aus. Die App wird neu gestartet, gefolgt von Änderungen. Sie müssen es nicht erneut erstellen.
Für Devicetypeid-Liste:
quelle