web-dev-qa-db-fra.com

Comment exécuter plusieurs simulateurs sur Xcode 9?

Selon Quoi de neuf sur Xcode, Xcode 9 nous permet d'exécuter plusieurs instances de simulateur.

Mais comment faire ça?

J'ai essayé de Build & Run sur différents modèles mais Quit l'instance actuelle.

21
Kevin Machado

J'ai résolu mon problème, c'est "très simple":]

Sur le simulateur, vous devez choisir un nouvel appareil parmi Hardware > Devices. La nouvelle instance démarre.

Ensuite, choisissez votre modèle sur Xcode.

Voici la solution.

35
Kevin Machado

Vous pouvez exécuter le simulateur multiple en utilisant des commandes de terminal xcodebuild comme celle-ci

xcodebuild test-without-building -xctestrun /PathTo/.xctestrun -sdk iphonesimulator -destination 'platform = iOS Simulator, id = name = iPhone 7, OS = 10.3.1' -destination 'platform = iOS Simulator, name = iPhone 7, OS = 10.3.1 '-destination-timeout 300 -derivedDataPath/pathtoyourderivedata -only-testing: YourTestScheme/YourTestClass/YouTestMethod

L'astuce ici est de continuer à ajouter -destination sur les appareils sur lesquels vous souhaitez exécuter votre test -destination test-without-building - Si votre projet est déjà en cours de construction.

3
udit gupta

J'ai dû détacher mon application en cours d'exécution du menu "Débogage" -> "Détacher de ____" s'il y avait déjà une instance de simulateur en cours d'exécution pour en exécuter plusieurs simultanément.

image

3
Ryan Morrison

Sélectionnez simplement le nom de l'appareil dans la liste des modèles:

Select multiple simulators for the same app

enter image description here

2
Harshal Wani

Xcode vous permet d'exécuter des simulations en parallèle (qui peuvent également communiquer entre elles, si cela fait partie des fonctionnalités de l'application), mais vous ne pouvez pas exécuter des simulations parallèles sur le même type d'appareil simulé (c'est-à-dire que vous ne pouvez pas simuler sur deux iPhone 11 Pros, mais vos simulations pourraient être, par exemple, iPhone 11 Pro Max et iPhone 11 Pro.)

  1. Dans Xcode, sélectionnez votre première plate-forme de destination de simulation (simulateur iOS Xcode-Product-Destination-select) et exécutez et démarrez une simulation (par exemple, ⌘B, ⌘R).
  2. Dans Xcode, faites Debug-Detach de <your_app__name>. La simulation de votre application continuera de s'exécuter, mais Xcode n'y sera plus connecté.
  3. Sélectionnez un différent simulateur iOS.
  4. Exécutez et démarrez la deuxième simulation (c.-à-d., ⌘B, ⌘R).

Je soupçonne que vous pouvez également détacher la deuxième simulation de Xcode en répétant l'étape 2, puis rattacher Xcode à la première instance, par exemple si vous voulez pouvoir inspecter ce qui se passe sur l'un ou l'autre des appareils simulés, mais je n'ai pas essayé cela.

1
Andrew Selby

Bien que la réponse acceptée lance une autre instance de simulateur, elle ne lance pas réellement votre application pour le débogage - sauf si je manque quelque chose - alors après cela, procédez comme suit:

  1. Exécutez votre application "manuellement" dans la nouvelle instance de simulateur - cela suppose qu'elle a déjà été déployée sur cette combinaison appareil/iOS.
  2. Dans le menu Xcode Debug, choisissez l'élément de menu 'Attach to Process' puis sélectionnez l'instance lancée à l'étape 1 dans la liste des 'L Target Targets'.

Et vous exécutez et déboguez maintenant votre application dans les deux simulateurs.

0
Christopher King