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?
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.
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>
Pour xcode 7:
open /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app --args -CurrentDeviceUDID <DeviceUDID>
Obtenez votre udid de simulateur de xcrun simctl list
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
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
.
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.
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.
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