simultaneas sim original dual doble chip iphone xcode simulator

original - ¿Hay alguna forma de simular múltiples iphones usando xcode/iphone sim?



iphone xr dual sim (10)

Compatible con Xcode 9 en.

(Fuente: WWDC 2017)

Estoy planeando un juego que requiera múltiples usuarios y me preguntaba si hay una manera de activar varias instancias del simulador de iPhone. No vi nada en los menús ni en los resultados de búsqueda de Google, pero solo quería asegurarme de que no me faltaba nada.


En XCode 4 puede ejecutar varias instancias mientras ambos están en modo de depuración.

Lo que hice fue crear un duplicado de mi objetivo y ejecuté tanto el original como el duplicado. Si está utilizando la ventana de salida, puede alternar qué salida está viendo.


Es posible pero solo con múltiples usuarios.

Lea esto: coderebel.com/2010/08/31/iphone_simulator

Suponiendo que tiene dos proyectos (P1, P2) que desea depurar simultáneamente, haga lo siguiente.

Pasos para configurar:

  1. Crea un nuevo usuario (U2) en tu Mac
  2. Dale acceso R / W a P2, especialmente a su carpeta de compilación.
  3. Descargue la aplicación de inicio desde el sitio anterior y cópiela en Aplicaciones.

Pasos para depurar:

  1. Cierre Xcode y el simulador si se está ejecutando
  2. Inicie el iPhone Launcher.app con U1.
  3. Inicie Xcode con U1, cargue P1, inicie la depuración.
  4. Inicie el iPhone Launcher.app con U2.
  5. Inicie Xcode con U2, cargue P2, inicie la depuración.

Desafortunadamente, es un PITA que tiene que cambiar usuarios de vez en cuando, pero hasta ahora no he encontrado ninguna solución mejor. Espero que esto ayude.


Hay una forma de hacerlo fácilmente sin usar múltiples usuarios. Sin embargo, ten en cuenta que no estarás conectado al depurador. Tenga en cuenta que la explicación a continuación es para XCode 6+ . Puede omitir esta explicación y simplemente desplácese hacia abajo a la siguiente sección de envoltura.

De una respuesta here podemos ver que puedes ejecutar cualquier simulador desde la línea de comando:

abierto -a "Simulador de iOS" --args -CurrentDeviceUDID

Puede encontrar el ID de dispositivo (así como todos sus simuladores) ejecutando el xcrun simctl list en la consola. Generará una lista como esta. La identificación del dispositivo es el código entre llaves:

== 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....

Por lo tanto, para ejecutar el simulador usando arriba como ejemplo, ejecute este comando en la consola:

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

En su lugar, usamos el -n porque el -a especifica la aplicación que se utilizará para abrir el archivo, mientras que el -n abre una nueva instancia de la aplicación incluso si ya se está ejecutando. Usa el comando man open para saber todo esto.

También asegúrese de tener la ruta correcta para su simulador.

Una cosa más a tener en cuenta, si ejecuta el simulador de esta manera, es probable que tenga simuladores limitados. Y dado que es limitado, es posible que desee iniciarlo sin interrumpir uno que ya está en la pantalla. Podemos resolver esto a partir de esta respuesta here donde él le muestra cómo create a new simulator and delete one.

Para resumir todo, esto es lo que debes hacer para lanzarlos.

A) Primero crea un simulador antes de lanzarlo.

Uso: simctl crea "nombre" "identificador de tipo de dispositivo" "id de tiempo de ejecución"

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

Encontrarás el id de tiempo de ejecución del comando xcrun simctl list que ejecuté arriba. Después de ejecutar el comando anterior, el ID del dispositivo se imprimirá en la pantalla de la consola. Tome nota de ello ya que lo necesitará como último argumento para iniciar el simulador que se muestra a continuación. Supongamos que esta ID era 99Z06AC6-A2D6-46E7-B4F7-BA4F5F3F39C8

B) lanzarlo

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

C) eliminarlo una vez que haya terminado con su simulador

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

Todo esto se puede colocar en un solo archivo .sh para una ejecución fácil. Tenga en cuenta poner comandos de wait o de wait después de cada comando si decide poner todo esto en un archivo sh.

[EDIT 2017] Veo que XCode 9 ahora admitirá múltiples simuladores. Esperando ver cómo funcionará todo.


Hmm ... No creo que te estés perdiendo nada aquí. Hasta donde sé, no hay tecnología dentro del SDK que sea capaz de emular múltiples dispositivos, aunque sería una característica útil. Creo que sus únicas opciones serían obtener un segundo dispositivo con sistema operativo para iPhone o conseguir un amigo que también tenga un dispositivo con sistema operativo para iPhone que le permita usarlo para las pruebas.


Otra opción (aunque probablemente exagerada) si tiene una licencia de servidor Mac OS X es virtualizar una instancia de Mac OS X Server y ejecutar un segundo simulador en la VM.


Por lo que puedo decir, no solo no se pueden ejecutar varias instancias del simulador, sino que cuando llega el momento de las pruebas reales del dispositivo, tampoco puede tener instaladas varias instancias del depurador.

Esto significa que para hacer aplicaciones de varios dispositivos, necesitará tener una sola Mac asignada a un solo iPhone / dispositivo táctil (o instancia de simulador) cada uno ejecutando su aplicación.

Empecé a investigar si VMWare o Parallels pueden incorporarse de algún modo a esto, pero no se puede hacer mucho sin hackear el sistema operativo.

Sugiero que presente una solicitud de función en http://bugreporter.apple.com .


Sí, ahora es posible y también es bastante fácil. Lo único que necesitas es xctool , las herramientas de compilación de Facebook y una gema de rubí. La gema de rubí ayuda a crear / destruir el simulador que se necesita durante la prueba.

Puede leer la documentación completa en este enlace:

https://github.com/plu/parallel_ios_tests

Estoy usando este enfoque y ejecuto mi prueba en el simulador 4 iOS al mismo tiempo.


Sigue estos pasos para probar tu aplicación.

Primero debe hacer una cosa para todo el proceso: vaya a Proyecto -> Editar configuración del proyecto -> opción de marcar - Cree objetivos independientes en paralelo.

  1. Código de depuración que creará su aplicación en el simulador Por ejemplo, el nombre de su aplicación es - Instancia
  2. Cerrar simulador
  3. Vaya a Proyecto-> Nuevo objetivo-> Instancia2 Agregue "Nombre de visualización del paquete: Instancia2" en el archivo Instance2.info.plist Establezca el nombre del ejecutable: Instancia2 Seleccione Instancia2 Objetivo-> Ir al proyecto-> Establecer destino activo-> Instancia2 Crear con instancia2

Nota: Haga todo cuidadosamente; de ​​lo contrario, debe reiniciar su simulador. Para reiniciar el simulador -> Ejecutar simulador -> Simulador de iPhone -> Restablecer contenido y configuración ...

Ahora tiene dos aplicaciones en el simulador y puede probar la aplicación en todas las instancias.

Espero que te ayude :)


Ivsty que funcionase combinando la respuesta de Ivsty con esta .

Básicamente, lo que hace es crear dos usuarios (A y B), ejecutar simuladores en cada uno de ellos, ejecutar el servidor VNC en el usuario B y luego conectarse desde el usuario A para acceder a la pantalla B sin necesidad de cambiar de usuario.