Pregunta

Estoy planeando un juego que requiere múltiples usuarios y me preguntaba si hay una manera de activar múltiples 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.

¿Fue útil?

Solución

Lo más cerca que puedo decir, no sólo no se puede tener múltiples instancias del simulador de marcha, pero cuando llega el momento de la prueba real del dispositivo no se puede tener varias instancias del depurador que ejecute.

Esto significa que hacer aplicaciones de dispositivos múltiples, tendrá que tener un único Mac asignado a un solo dispositivo iPhone / touch (o instancia simulador) cada una ejecutando su aplicación.

He empezado investigando si VMWare o Parallels alguna manera se pueden poner en esto, pero no hay mucho que se pueda hacer sin hackear el sistema operativo.

Sugiero la presentación de una solicitud de función con http://bugreporter.apple.com .

Otros consejos

Es posible pero sólo con múltiples usuarios.

Lee esto: http://www.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 del sitio anterior y cópiela en Aplicaciones.

Pasos para depurar:

  1. Cierra Xcode y el simulador si lo estás ejecutando.
  2. Inicie la aplicación iPhone Launcher.app con U1.
  3. Inicie Xcode con U1, cargue P1, comience a depurar.
  4. Inicie la aplicación iPhone Launcher.app con U2.
  5. Inicie Xcode con U2, cargue P2, comience a depurar.

Lamentablemente es un P.I.T.A.tener que cambiar de usuario de vez en cuando pero hasta ahora no he encontrado ninguna solución mejor.Espero que esto ayude.

Hay una manera de hacer esto fácilmente sin el uso de múltiples usuarios. Tenga en cuenta que no será conectado con el depurador sin embargo. Tenga en cuenta la explicación a continuación es para XCode 6 + . Puede omitir esta explicación y simplemente desplazarse hacia abajo a la sección de envolver-it-up a continuación.

A partir de una respuesta aquí podemos ver que se puede lanzar cualquier simulador de línea de comandos:

  

-a abierta "simulador de iOS" --args -CurrentDeviceUDID

Puede encontrar DeviceID (así como todas sus simuladores) ejecutando el comando xcrun simctl list en la consola. Se generará una lista como esta. El ID de 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 utilizando anteriormente 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'

Utilizamos la bandera -n lugar porque la bandera -a especifica la aplicación que desea utilizar para abrir el archivo, mientras que la bandera -n abre una nueva instancia de la aplicación (s), incluso si ya se está ejecutando. Utilice el comando man open saber todas estas cosas.

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

Una cosa más a tener en cuenta, si se ejecuta el simulador como esto, lo más probable es que usted tiene simuladores limitados. Y desde su limitado, es posible que desee poner en marcha sin interrumpir uno que ya está en la pantalla. Podemos resolver esto desde esta respuesta aquí donde se muestra cómo create a new simulator and delete one.

Así envolviéndolo todo, esto es lo que haces para lanzarlos.

A) En primer lugar crear un simulador antes de lanzarlo.

Uso: simctl crear "nombre" "Identificación del tipo de dispositivo" "Identificación del tiempo de ejecución"

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

Encontrará el ID de tiempo de ejecución del comando comando xcrun simctl list Corrí arriba. Después de ejecutar el comando anterior, DeviceID será impreso en la pantalla de la consola. Tomar nota de ello ya que tendrá como último argumento para poner en marcha el simulador se muestra a continuación. Vamos a suponer que esta identificación fue 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) eliminar 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 facilitar la ejecución. Tenga en cuenta que poner comandos wait o sleep después de cada comando si decide poner todo esto en un archivo sh.

[EDIT 2017] Veo que XCode 9 soportará ahora varios simuladores. A la espera de ver cómo se hará todo el trabajo.

Otra opción (aunque algo excesivo) si usted tiene una licencia de servidor Mac OS X es virtualizar una instancia de Mac OS X Server, y ejecutar un segundo simulador de la máquina virtual.

Hmm ... no creo que se echa en falta nada aquí. Por lo que yo sé que no hay tecnología en el SDK que es capaz de emular múltiples dispositivos - aunque eso también podría ser una característica útil para tener. Creo que las únicas opciones sería la de obtener un segundo dispositivo iPhone OS, o conseguir un amigo que también tiene un dispositivo iPhone OS para que lo utilice para la prueba.

En XCode 4 puede ejecutar varias instancias Si bien tener tanto estar en el modo de depuración.

Lo que hice fue crear un duplicado de mi objetivo y corrió tanto el original como el duplicado. Si está utilizando la ventana de salida se puede conmutar la salida que está viendo.

Siga estos pasos para probar la aplicación.

Hay que hacer una cosa por todo el proceso en primer lugar: Ir a Proyecto -> Editar configuración del proyecto -> marque la opción -. Construir objetivos independientes en paralelo

    código
  1. Depurar que va a crear su aplicación en el simulador por ejemplo, su nombre de la App es - Instancia
  2. Cerrar Simulador
  3. Ir a Proyecto-> Nuevo destino -> Instance2 Agregar "Nombre de visualización del lote: Instance2" en el archivo Instance2.info.plist Establecer nombre del ejecutable: Instance2 Seleccionar Instance2 de destino -> Ir a Proyecto -> Establecer objetivo activo -> Instance2 Construir con Instance2

Nota: No todos cuidadosamente lo contrario tendrá que reiniciar el simulador Simulador para Reset -> Ejecutar Simulador -> iPhone Simulador -> Restablecer contenido y configuración ...

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

Espero que le ayudará a:)

Me las arreglé para conseguir que funcione la combinación de respuesta por Ivsty con éste .

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

Apoyado de Xcode 9 en.

(Fuente: WWDC 2017)

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

Puede leer la documentación completa en el siguiente enlace:

https://github.com/plu/parallel_ios_tests

Estoy usando este enfoque y ejecutar mi prueba el 4 de simulador de iOS en el mismo tiempo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top