2010-01-26 27 views
7

Puedo hacerlo desde XCode, pero quiero poder iniciar una aplicación de iPhone (en el dispositivo) desde la línea de comandos. ¿Es posible?Depuración aplicación de iPhone desde la línea de comandos

¿Por qué? Porque quiero capturar algunos de los resultados de las pruebas semiautomatizadas. Supongo que necesito usar una compilación de depuración para la salida de NSLog, pero también me interesaría saber sobre otros métodos para volver a poner los datos de NSLog/stdio en la Mac del host.

+0

Bien podría estar equivocado, pero pensé que no podría llegar a la cli en el iPhone a menos que fuera jailbroken? – PurplePilot

+0

Creo que quiere usar la CLI en su computadora para iniciar la aplicación en modo de depuración en el teléfono y capturar la salida. –

Respuesta

1

Hay un proyecto en github llamado titanium_mobile (parte de Titanium Developer).

Utilizo una utilidad de ese proyecto llamada iphonesim. Lanza una aplicación de iPhone desde la línea de comandos (aunque no estoy seguro de cómo, creo que hay una manera de hacerlo con SpringBoard.app). Si subes un nivel en el código de Titanium Mobile y miras en builder.py, puedes ver cómo lanzan una aplicación en el simulador y capturan la salida.

+0

Esa es una pieza de código muy interesante para mí, gracias. Casi podía hacer que funcionara en el simulador, sin duda aprendí mucho sobre cómo crear automáticamente aplicaciones de lanzamiento de iPhone. Al final encontré una solución diferente a mi necesidad específica, pero creo que la técnica es de interés en general. – atobe

+0

El proyecto original de iphonesim está aquí: http://github.com/jhaynie/iphonesim – apenwarr

0

Puede hacer esto en el dispositivo si está jailbroken. Puede colocar una construcción de depuración y símbolos en su dispositivo y ejecutar gdb en él. No es compatible, pero oigo que funciona. No estoy seguro de si hay un buen tutorial. Google?

0

Un método sería utilizar la clase AsyncSocket, y pasar cualquier información que desee registrar desde el iPhone a una aplicación de host básica en la Mac, que NSLogs lo que reciba. Si sigue la aplicación EchoServer, debería poder integrarla en tan solo unos minutos

+0

Esto suena como un buen camino a seguir. Al final encontré una solución diferente a mi necesidad específica, pero creo que esto funcionaría. – atobe

1

Al final resolví mi necesidad específica de una manera diferente. Necesitaba obtener datos de los acelerómetros del iPhone en una aplicación prototipo en Adobe AIR (Flash).

Utilicé esta aplicación en el iPhone que arroja paquetes UDP con X, Y, Z fuerzas en ellos. http://code.google.com/p/accelerometer-simulator/wiki/Home

Lo encontré en esta publicación de blog que podría ser de interés para las personas que intentan hacer otras cosas similares. http://ifiddling.blogspot.com/2009/01/dummy2.html

que utiliza una secuencia de comandos de Python para presentar un servidor a Flash, agarra los paquetes UDP acelerómetro, munge ellos en AMF y enviarlos a Flash. Flash usa un socket para conectarse a este servidor y recibir los datos del acelerómetro.

Algunas partes, pero funciona muy bien.

Cuestiones relacionadas