Lancez l'application installée sur l'iPhone connecté

Je travaille sur le lancement d'une solution de test automatisée pour certaines applications iOS. J'utilise fruitstrap pour transférer et installer une application compilée sur l'iPhone connecté, mais j'ai du mal à find un moyen de lancer automatiquement l'application une fois l'installation terminée.

Fruitstrap a une option pour exécuter l'application dans le débogueur GDB, qui fonctionne. Malheureusement, il y a quelques cas de test qui nécessiteront que l'application soit exécutée sans que le débogueur ne soit connecté (traitement spécial des incidents). J'ai passé pas mal de time à me débrouiller avec les ressources disponibles sur MobileDevice Library, ce que Fruitstrap utilise, mais je n'ai rien pu faire pour lancer une application.

Des idées?

Vous pouvez faire ce que vous voulez en utilisant fruitstrap ou Xcode pour démarrer un programme "bootstrap" qui provoque l'exécution de votre application cible via une URL personnalisée comme décrit par Michael.

Pendant que le programme d'amorçage s'exécuterait sous le débogueur, le programme appelé par l'URL fonctionnerait normalement.

Créer un programme d'amorçage et utiliser des schémas d'URL peut être une option pour certaines personnes et devrait certainement être envisagé, mais cela ne correspond pas à mes exigences.

Ce que j'ai fini par faire était de lancer l'application avec le débogueur à travers fruitstrap. J'ai recompilé le file fruitstrap pour inclure les commands de préparation suivantes (dans le GDB_PREP_CMDS define):

handle all noprint pass nostop continue 

La poignée transmettra le signal au programme afin que le gestionnaire de signal personnalisé (gestionnaire d'écrasement dans ce cas) gérera le signal. Le continuer était quelque chose dont j'avais besoin pour que l'application fonctionne réellement une fois que le débogueur a démarré.

Il y a un défaut malheureux dans ceci, que malheureusement je ne sais pas une solution de contournement pour. La version ARM7 de GDB n'a pas la command 'set dont_handle_bad_access' comme le fait la version darwin. Pour une raison quelconque, le passage des signaux EXC_BAD_ACCESS au programme ne fonctionne pas et l'application se bloque. Ceci est important car c'est le signal de la plupart des plantages. Mais en l'état actuel des choses, c'est le mieux que je puisse faire, et au less, il gère les exceptions non interceptées.

Je crois que vous searchz peut-être une sorte de schéma d'URL personnalisé.

Jetez un coup d'œil au document suivant et faites défiler jusqu'à: Implémentation de schémas d'URL personnalisés

http://developer.apple.com/library/ios/#DOCUMENTATION/iPhone/Conceptual/iPhoneOSProgrammingGuide/AdvancedAppTricks/AdvancedAppTricks.html

Vous pouvez également google URL Schemes dans iOS pour voir si vous rencontrez quelque chose de similaire à ce que vous essayez de faire.

Faites-moi savoir si cela vous a aidé. Serait intéressant d'entendre si vous avez eu du succès.

À votre santé.