emulator - test iphone online
XCode Test Automation para iPhone (8)
xcodebuild solo compilará el binario y no cargará el binario recién compilado al iphone.
en realidad, se puede cargar (después de firmarlo), pero no se ejecuta tan mal ... tal vez se pueda ejecutar usando gdb una vez conectado al objetivo, pero ¿cómo (ip ?, usb? usbnet?)?
Me gustaría que mi aplicación de prueba de iPhone se probara automáticamente en un iPhone. Los siguientes son los pasos que me gustaría tener:
- compilar, enlazar y codificar firmar la aplicación iphone (Xcodebuild)
- subir la aplicación recién construida para el iPhone
- ejecuta la aplicación cargada en el iPhone automáticamente
- recoger el resultado de la consola gdb
- cierra la aplicación
En este momento, tengo un problema con los pasos 2 y 3 en los que no puedo hacerlo automáticamente (puedo hacerlo desde XCode a través del botón "Crear y depurar". Sin embargo, esto requerirá un clic manual).
Hice una investigación en automator y no responde a mi problema. Otra opción en la que estoy pensando es compilar la aplicación para el simulador de iphone y ejecutarla desde allí, pero no estoy seguro de qué tan preciso será el resultado de la prueba en comparación con el dispositivo real.
Soy nuevo en el desarrollo de Mac / iPhone, quizás alguien tenga una mejor manera de probar esto. Cualquier comentario y aporte son bienvenidos. Gracias.
¿Podría agregar una fase de compilación al destino que ejecuta un script para cargar el binario en el iPhone?
Haga clic con el botón derecho en el destino, Agregar-> Nueva fase de compilación-> Nueva fase de compilación del script de ejecución
Echa un vistazo a iphone_testify , funciona bien con OCUnit y Google Toolbox For Mac, y creo que podría ser posible extenderlo a algo como UISpec.
Saludos
Echa un vistazo a UISpec http://code.google.com/p/uispec/
Es un marco completo de pruebas de automatización que se está desarrollando para el iPhone.
Hay una herramienta de línea de comandos "xcodebuild" a la que puedes llamar para iniciar una compilación XCode sin que esté abierta. Hay banderas que puedes usar para establecer objetivos y así sucesivamente.
La herramienta que probablemente desee utilizar para la compilación e instalación es Applescript. Algo como:
tell application "Xcode" to launch
No pretendo que esta sea una respuesta completa; Todavía hay muchas cosas por hacer. Pero creo que Applescript será una de tus herramientas clave.
La sección de comentarios no proporciona una buena manera de mostrar la solución correctamente. Aquí está el resumen de la respuesta.
La tarea de crear la aplicación de iPhone, cargar y activar el proceso de depuración en el iPhone se realiza a través de AppleScript. Aquí es cómo se ve el AppleScript:
tell application "Xcode"
open "Users:chuan:Desktop:iphone_manual_client:iphone_manual_client.xcodeproj"
tell project "iphone_manual_client"
clean
build
(* for some reasons, debug will hang even the debug process has completed.
The try block is created to suppress the AppleEvent timeout error
*)
try
debug
end try
end tell
quit
end tell
AppleScript acepta ":" en lugar de "/" para el separador de archivos y carpetas.
La salida de la consola GDB se puede capturar configurando la opción GDB para escribirla en un archivo. Esto se hace escribiendo el siguiente comando en la Terminal:
defaults write com.apple.Xcode PBXGDBDebuggerLogToFile YES
defaults write com.apple.Xcode PBXGDBDebuggerLogFileName <path to my gdb output file>
Por último, muchas gracias a varias personas que han ayudado a resolver este problema.