Xcode 6: lanzamiento del simulador desde la línea de comando

Quiero lanzar el simulador de iPhone desde la línea de comandos.

hasta ahora he estado usando el comando a continuación

/Aplicaciones/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Applications/iPhone Simulator.app/Contents/MacOS/iPhone Simulator -SimulateDevice

-SimulateDevice se utiliza para iniciar un tipo de dispositivo específico

Ahora con Xcode 6, la ruta y la aplicación se han cambiado a

/Aplicaciones/Xcode.app/Contents/Developer/Applications/iOS Simulator.app/Contents/MacOS/iOS Simulator

pero lamentablemente la opción -SimulateDevice no está funcionando ahora. Puedo lanzar el simulador, pero no tengo una opción para especificar cuál lanzar

¿Alguien encontró alguna alternativa para esto con Xcode 6?

Encontré una manera de lograr lo que quería.

¡Apple ha presentado una herramienta interesante con Xcode 6!

simctl

simclt le permite controlar el simulador que se está ejecutando.

ejecute xcrun simctl para obtener la lista de subcomandos disponibles. Muchas nuevas opciones para jugar.

Ahora para hacer lo que quería, aquí está el comando para iniciar el simulador:

xcrun instruments -w "iPhone 5 (8.0 Simulator)"

-w es proporcionar un tipo de dispositivo y obtener la lista de dispositivos disponibles.

Simplemente ejecuta esto:

xcrun instruments -s

Después de iniciar el simulador, puedes controlarlo usando simctl

Para instalar tu aplicación:

xcrun simctl install booted

Para iniciar la aplicación:

xcrun simctl launch booted

Espero que esto ayude.

Con Xcode 6, si desea que iOS Simulator.app arranque un dispositivo específico cuando se inicia, puede ejecutarlo desde la línea de comando:

open -a "iOS Simulator" --args -CurrentDeviceUDID

donde puede averiguar el UDID del dispositivo desde el que desea iniciar:

xcrun simctl list

Con Xcode 7, la aplicación pasó a llamarse Simulator.app, por lo que debe actualizar lo anterior según corresponda a:

open -a Simulator --args -CurrentDeviceUDID

Para xcode 7:

open /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app --args -CurrentDeviceUDID

Obtenga su simulador udid de xcrun simctl list

Puede especificar el hardware y la versión de iOS con el indicador -w. El formato es

 instruments -w "simulator-version" 

Por ejemplo:

instruments -w "iPhone Retina (3.5-inch) - Simulator - iOS 7.1" .

Obtendrá las combinaciones hardvare-iOS disponibles utilizando los instruments -w help command.

Para iniciar un simulador con un dispositivo específico arrancado, estoy usando el subcomando enumerar dispositivos para obtener la lista de todos los dispositivos disponibles.

 $ xcrun simctl list devices == Devices == -- iOS 11.2 -- iPhone 5s (E3B6EA43-C805-49C2-9502-A44A465D8DF2) (Shutdown) iPhone 6 (801E9E11-CA86-473A-9879-4B0742B827FB) (Shutdown) iPhone 6 Plus (24013349-1A6F-489C-9A68-ABB00EBB4BBF) (Shutdown) iPhone 6s (1A594D75-146C-4BEA-A250-1FADE7886114) (Shutdown) iPhone 6s Plus (C2730FA0-11CB-49C9-A087-CB3C1BF1CC3D) (Shutdown) iPhone 7 (F58B3749-3276-49E5-81C8-EBA1AEA7B242) (Shutdown) iPhone 7 Plus (98167D8C-8F27-404C-AB02-588D9AAFD071) (Shutdown) iPhone 8 (96322368-F763-4E0A-8576-ADE9F678211F) (Shutdown) iPhone 8 Plus (E916D1EE-B67B-4C01-B3F5-C5C80CC4CDF8) (Shutdown) iPhone SE (ABEFEDDF-7A7C-4B94-9E91-E065170FA47F) (Shutdown) iPhone X (84DAB7AB-3CA2-4F5B-8C4E-A5B54CA15C31) (Shutdown) iPad Air (DCD8CF4B-2C9F-4BA1-952A-ACB9CAD0A84D) (Shutdown) iPad Air 2 (A47C9A05-233F-450F-9A39-318258E9ADEA) (Shutdown) iPad (5th generation) (819C058E-64AC-4E73-8F41-2C0F919F8B56) (Booted) 

este comando generará una lista de dispositivos disponibles con sus UDID y estados

Luego, inicio la aplicación del simulador especificando un dispositivo con la opción -CurrentDeviceUDID

 /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app/Contents/MacOS/Simulator -CurrentDeviceUDID  

NOTA: reemplace el UDID válido de la lista.

Por ejemplo, si queremos lanzar el simulador con un Ipad (% generación arrancada):

 /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app/Contents/MacOS/Simulator -CurrentDeviceUDID 84DAB7AB-3CA2-4F5B-8C4E-A5B54CA15C31 

ACTUALIZACIÓN 23/05/2018

Con Xcode 9.3, la opción UDID de CurrentDevice no funciona para mí, como solución alternativa, tengo que usar simctl para arrancar el dispositivo en el simulador antes de abrirlo.

 xcrun simctl boot 2BF01FC0-7E29-4AF1-ADD1-886DF129A9A9 open -a Simulator 

Puede crear, borrar, eliminar, iniciar, apagar y actualizar simuladores usando simctl.

 $ xcrun simctl create Usage: simctl create    $ xcrun simctl delete Usage: simctl delete  [... ] | unavailable 

Para obtener la lista de tipos de dispositivos y tiempos de ejecución válidos

 xcrun simctl list devicetypes xcrun simctl list runtimes 

Ejecuta este comando. La aplicación se reiniciará seguida de cambios. No es necesario reconstruirlo de nuevo.

 ios-sim "launch" "/Library/WebServer/Documents/testapp/build/iphone/build/Debug-iphonesimulator/test.app" "--devicetypeid" "iPad-2" "--exit"; 

Para la lista de devicetypeid:

 ios-sim showdevicetypes 

A partir de Xcode 7.3.1

Lista de dispositivos en un FORMATO REALMENTE AGRADABLE: ~/Library/Developer/CoreSimulator/Devices/device_set.plist

 Root DefaultDevices com.apple.CoreSimulator.SimRuntime.iOS-8-4 com.apple.CoreSimulator.SimDeviceType.iPad-Retina : AB335FAF-E3E3-4AE9-A0AF-D1C6AEB5FBD4 

Luego desea ejecutar (abrir) su aplicación Simulator y asegurarse de que se inicia una nueva instancia de la aplicación.

La aplicación está aquí: /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app

Y el formato que usarías es así:

open -n -a --args -CurrentDeviceUDID

Entonces, si quisiera lanzar el Simulador arriba, haría esto.

open -n -a /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app --args -CurrentDeviceUDID AB335FAF-E3E3-4AE9-A0AF-D1C6AEB5FBD4

¡Maldito calor! Acabo de probarlo y funciona en Mac OS 10.11.6. Ahora el siguiente truco es decirle al simulador que abra nuestra aplicación instalada. No estoy allí todavía. Espero que esto ayude. Gracias a https://stackoverflow.com/users/726106/jeremy-huddleston-sequoia por su explicación detallada.