Question

Je prévois un jeu qui nécessite plusieurs utilisateurs et je me demandais s'il y a un moyen de tirer plusieurs instances du simulateur iPhone. Je ne vois rien dans les menus ou dans les résultats de recherche Google, mais je voulais juste vous assurer que je ne manque rien.

Était-ce utile?

La solution

Pour autant que je peux dire, non seulement pouvez-vous pas avoir plusieurs instances du fonctionnement du simulateur, mais quand vient le temps pour l'appareil réel que vous pouvez tester ne pas avoir plusieurs instances du débogueur exécutant.

Cela signifie faire des applications multi-périphériques, vous aurez besoin d'avoir un Mac unique attribué à un seul iPhone / appareil tactile (ou une instance de simulateur) chacun exécutant votre application.

J'ai commencé à chercher à savoir si VMWare ou Parallels peuvent en quelque sorte être mis en, mais il n'y a pas grand-chose qui peut être fait sans le piratage du système d'exploitation.

Je suggère le dépôt d'une demande de fonctionnalité avec http://bugreporter.apple.com .

Autres conseils

Il est possible, mais seulement avec plusieurs utilisateurs.

Lire ceci: http://www.coderebel.com/2010/08/31 / iphone_simulator

En supposant que vous avez deux projets (P1, P2) que vous voulez déboguer simultanément, procédez comme suit.

Les étapes à mettre en place:

  1. Créer un nouvel utilisateur (U2) sur votre Mac
  2. Donne accès R / W à P2, en particulier dans son dossier de construction.
  3. Télécharger l'application lanceur du site ci-dessus et le copier dans les applications.

Étapes de débogage:

  1. Fermer Xcode et le simulateur en cas d'exécution
  2. Lancez l'iPhone Launcher.app avec U1.
  3. Démarrer Xcode avec U1, charge P1, démarrer le débogage.
  4. Lancez l'iPhone Launcher.app avec U2.
  5. Démarrer Xcode avec U2, charge P2, démarrer le débogage.

Malheureusement, il est un P.I.T.A. avoir à changer les utilisateurs de temps en temps, mais jusqu'à présent, je ne l'ai pas trouvé de meilleure solution. Espérons que cela aide.

Il y a une façon de le faire facilement sans utiliser plusieurs utilisateurs. Gardez à l'esprit que vous ne serez pas connecté au débogueur bien. Gardez à l'esprit l'explication ci-dessous est XCode 6 + . Vous pouvez sauter cette explication et juste faire défiler jusqu'à la section d'emballage-it-up ci-dessous.

D'une réponse nous pouvons voir que vous pouvez lancer tout simulateur de ligne de commande:

  

-a "iOS Simulator" ouvert --args -CurrentDeviceUDID

Vous pouvez trouver le deviceID (ainsi que tous vos simulateurs) en exécutant la commande xcrun simctl list sur la console. Il va générer une telle liste. L'ID de dispositif est le code entre accolades:

== Runtimes ==
iOS 8.3 (8.3 - 12F69) (com.apple.CoreSimulator.SimRuntime.iOS-8-3)
== Devices ==
-- iOS 8.3 --
    iPhone 4s (99Z06AC6-A2D6-46E7-B4F7-BA4F5F3F39C8) (Shutdown)
    iPhone 5 (K262AF11-ADD2-4FDA-ACBA-8C80DD9D4AA1) (Shutdown)
    iPhone 5s (337KDC51-0A4B-47DB-8966-83562FD92C93) (Shutdown)
    iPhone 6 Plus (9GK714E2-F713-4F98-A96E-C72ACD6571A8) (Shutdown)
-- iOS 8.2 --
    etc continued....

Par conséquent, pour exécuter le simulateur en utilisant ci-dessus comme exemple, exécutez cette commande sur la console:

open -n /Applications/Xcode.app/Contents/Developer/Applications/iOS\ Simulator.app/ --args -CurrentDeviceUDID '99Z06AC6-A2D6-46E7-B4F7-BA4F5F3F39C8'

Nous utilisons le drapeau -n à la place parce que le drapeau -a spécifie l'application à utiliser pour ouvrir le fichier, alors que le drapeau -n ouvre une nouvelle instance de l'application (s) même si l'on est déjà en cours d'exécution. Utilisez la commande man open savoir tout ce genre de choses.

Assurez-vous également que vous avez le bon chemin pour votre simulateur.

Une autre chose à noter, si vous exécutez le simulateur comme ça, les chances sont que vous avez des simulateurs limités. Et depuis sa limite, vous pouvez le lancer sans interrompre celui qui est déjà à l'écran. Nous pouvons résoudre ce de cette réponse où il vous montre comment create a new simulator and delete one.

enroulant donc le tout, voici ce que vous faites pour les lancer.

A) d'abord créer un simulateur avant de le lancer.

Utilisation: simctl créer "name" "id type de périphérique" "id d'exécution"

xcrun simctl create "mynewsimulator" "iPhone 6" "com.apple.CoreSimulator.SimRuntime.iOS-8-3"

Vous trouverez l'ID d'exécution de la commande commande xcrun simctl list j'ai couru ci-dessus. Après avoir exécuté la commande ci-dessus, le deviceID sera imprimé sur l'écran de la console. Prenez note de ce que vous aurez besoin que le dernier argument pour lancer le simulateur illustré ci-dessous. Supposons que cet ID a été 99Z06AC6-A2D6-46E7-B4F7-BA4F5F3F39C8

B) lancer

open -n /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app/ --args -CurrentDeviceUDID '99Z06AC6-A2D6-46E7-B4F7-BA4F5F3F39C8'

C) supprimer une fois que vous avez terminé votre simulateur

xcrun simctl delete 99Z06AC6-A2D6-46E7-B4F7-BA4F5F3F39C8

Tout cela peut être placé dans un seul fichier .sh pour un fonctionnement facile. S'il vous plaît noter pour mettre les commandes wait ou sleep après chaque commande si vous décidez de mettre tout cela dans un fichier sh.

[EDIT 2017] Je vois que XCode 9 soutiendra maintenant plusieurs simulateurs. En attente de voir comment cela fonctionnera tout.

Une autre option (quoique probablement exagéré) si vous disposez d'une licence de serveur Mac OS X est virtualiser une instance de Mac OS X Server et exécuter un second simulateur dans la machine virtuelle.

Hmm ... Je ne pense pas que vous manque quelque chose ici. Pour autant que je sais qu'il n'y a pas la technologie dans le SDK qui est capable d'émuler plusieurs appareils - bien que ce serait une caractéristique utile d'avoir. Je pense que vos seules options serait d'obtenir un second dispositif iPhone OS, ou demandez à un ami qui possède également un appareil iPhone OS pour vous permettre de l'utiliser pour le test.

Dans XCode 4, vous pouvez exécuter plusieurs instances tout en ayant à la fois en mode de débogage.

Ce que je faisais était de créer un double de ma cible et a couru à la fois l'original et la copie. Si vous utilisez la fenêtre de sortie, vous pouvez activer ou désactiver la sortie que vous regardez.

Suivez ces étapes pour tester votre application.

Vous devez faire une chose pour tout le premier processus: Aller au projet -> Modifier les paramètres du projet -> cocher sur l'option -. Construire des cibles indépendantes en parallèle

  1. code de débogage qui permettra de créer votre application dans le simulateur pour exemple votre nom App est - instance
  2. Simulator Fermer
  3. Aller projet-> Nouvelle cible -> Instance2 Ajouter « Nom d'affichage Bundle: Instance2 » dans le fichier Instance2.info.plist Set Nom Executable: Instance2 Sélectionnez Instance2 cible -> Aller au projet -> Set Active Target -> Instance2 Construire avec Instance2

Note: Faites tout avec soin, sinon vous devez réinitialiser votre simulateur Pour Simulator Reset -> Run Simulator -> iPhone Simulator -> Réinitialiser contenu et réglages ...

Vous avez deux applications en simulateur et vous pouvez tester l'application sur toutes les instances.

Je espère que ça vous aidera à:)

J'ai réussi à faire fonctionner la combinaison réponse par Ivsty avec celui-ci .

En fait, ce que vous faites est de créer deux utilisateurs (A et B), des simulateurs gérés dans chacun d'eux, serveur exécuter VNC sur l'utilisateur B, puis connectez d'un utilisateur A à l'écran d'accès B sans avoir besoin de changer d'utilisateur.

pris en charge à partir de 9 sur Xcode.

(Source: WWDC 2017)

Oui, il est maintenant possible et est également très facile. La seule chose dont vous avez besoin est xctool, les outils de construction de Facebook et un bijou rubis. Le bijou rubis contribue à créer / détruire le simulateur nécessaire pendant le test.

Vous pouvez consulter la documentation complète sur ce lien:

https://github.com/plu/parallel_ios_tests

J'utilise cette approche et j'exécuter mon test sur simulateur iOS 4 sur le même temps.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top