web-dev-qa-db-fra.com

Xcode 6 - Lancer le simulateur à partir de la ligne de commande

Je veux lancer le simulateur iPhone en ligne de commande.

jusqu'à présent, j'utilisais la commande ci-dessous

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

-SimulateDevice est utilisé pour lancer un type de périphérique spécifique

Maintenant, avec Xcode 6, le chemin et l'application ont été modifiés pour

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

mais malheureusement, l'option -SimulateDevice ne fonctionne pas maintenant. Je peux lancer le simulateur, mais je n'ai pas l'option de spécifier lequel lancer

Quelqu'un a-t-il trouvé des alternatives pour cela avec Xcode 6?

93
Balaji Sekar

J'ai trouvé un moyen de réaliser ce que je voulais.

Apple a introduit un outil intéressant avec Xcode 6!

simctl

simclt vous permet de contrôler le simulateur en cours d'exécution.

exécutez xcrun simctl pour obtenir la liste des sous-commandes disponibles. Beaucoup de nouvelles options pour jouer avec.

Maintenant, pour faire ce que je voulais, voici la commande pour lancer le simulateur:

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

-w doit fournir un type de périphérique et obtenir la liste des périphériques disponibles.

Il suffit d'exécuter ceci:

xcrun instruments -s

Après avoir lancé le simulateur, vous pouvez le contrôler avec simctl

Pour installer votre application:

xcrun simctl install booted <app path>

Pour lancer l'application:

xcrun simctl launch booted <app identifier>

J'espère que cela t'aides.

204
Balaji Sekar

Avec Xcode 6, si vous souhaitez que iOS Simulator.app démarre un périphérique spécifique lors de son lancement, vous pouvez l'exécuter à partir de la ligne de commande:

open -a "iOS Simulator" --args -CurrentDeviceUDID <DEVICE UDID>

où vous pouvez déterminer l’UDID du périphérique à partir duquel vous voulez démarrer:

xcrun simctl list

Avec Xcode 7, l'application a été renommée Simulator.app. Vous devez donc mettre à jour ce qui précède en conséquence pour:

open -a Simulator --args -CurrentDeviceUDID <DEVICE UDID>

57

Pour xcode 7:

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

Obtenez votre udid de simulateur de xcrun simctl list

17
TinyTimZamboni

Pour lancer un simulateur avec un périphérique spécifique démarré, utilisez la sous-commande list devices pour obtenir la liste de tous les périphériques 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)

cette commande affichera une liste des périphériques disponibles avec leurs UDID et leurs statuts

Puis je lance l'application de simulation en spécifiant un périphérique avec l'option -CurrentDeviceUDID

/Applications/Xcode.app/Contents/Developer/Applications/Simulator.app/Contents/MacOS/Simulator -CurrentDeviceUDID <DEVICE-UDID>

REMARQUE: remplacez le par un UDID valide de la liste.

Par exemple, si nous voulons lancer le simulateur avec un Ipad (% de la génération démarrée):

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

MISE À JOUR 23/05/2018

L'option UDID de Xcode 9.3 CurrentDevice ne fonctionnant pas pour moi, je dois utiliser simctl pour démarrer le périphérique dans le simulateur avant de l'ouvrir.

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

Vous pouvez créer, effacer, supprimer, démarrer, arrêter et mettre à niveau des simulateurs à l'aide de simctl.

$ xcrun simctl create
Usage: simctl create <name> <device type id> <runtime id>

$ xcrun simctl delete
Usage: simctl delete <device> [... <device n>] | unavailable

Pour obtenir la liste des types de périphériques et runtimes valides

xcrun simctl list devicetypes

xcrun simctl list runtimes
9
Javier Rojano

Vous pouvez spécifier le matériel et la version iOS avec l'option -w. Le format est

instruments -w "simulator-version"

Pour par exemple:

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

Vous obtiendrez les combinaisons hardvare-iOS disponibles en utilisant la commande instruments -w help.

8
Neenu

Vérifié dans Xcode 9.4.1

Liste de périphériques dans un format vraiment agréable: ~/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

Ensuite, vous voulez exécuter (ouvrir) votre application Simulator et vous assurer qu'une nouvelle instance de l'application est lancée.

L'application est ici: /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app

Et le format que vous utiliseriez est le suivant:

open -n -a <SimulatorPath> --args -CurrentDeviceUDID <SimDeviceTypeUDID>

Donc, si je voulais lancer le simulateur ci-dessus, je le ferais.

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

Damn hot! Je viens de le tester et cela fonctionne sur Mac OS 10.11.6. Maintenant, la prochaine astuce consiste à dire au simulateur d’ouvrir notre application installée. Je ne suis pas encore là. J'espère que cela t'aides. Merci à https://stackoverflow.com/users/726106/jeremy-huddleston-sequoia pour son explication détaillée.

3
Alex Zavatone

Pour démarrer un simulateur:

xcrun simctl boot "iPhone X"

Il démarrera en mode sans tête. Pour rendre le simulateur visible:

open -a Simulator

xcrun simctl boot est plus simple que xcrun instruments -w. instruments nécessite le nom complet du périphérique.

2
Estevão Lucas

Exécutez cette commande. L'application sera redémarrée, suivie de modifications. Pas besoin de le reconstruire à nouveau.

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

Pour la liste de devicetypeid:

ios-sim showdevicetypes
1
Swapnil Mokashi