La aplicación de lanzamiento con los instrumentos de iOS no es confiable

Inicío mi aplicación de iOS en el dispositivo (no simulador) con el siguiente command (la aplicación ya está instalada).

instruments \ -w c717fa22472d7b691ae5763af90e1e44244ad85a \ -t /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate \ -D "/Users/mj/Desktop/apps/trace" \ LPSimpleExample-cal \ -e UIARESULTSPATH /Users/mj/Desktop/apps \ -e UIASCRIPT /Users/mj/Desktop/apps/_run_loop.js 

6 de cada 10 veces funciona. En caso de error recibo el siguiente post:

 2013-10-07 16:45:51.553 instruments[9891:1207] unable to locate CFBundleIdentifier for path: LPSimpleExample-cal 2013-10-07 16:45:51.555 instruments[9891:1207] Recording cancelled : At least one target failed to launch; aborting run Instruments Trace Error : Error Domain=com.apple.instruments Code=1 "Error Starting Recording" UserInfo=0x7faccbef8fa0 {NSLocalizedDescription=Error Starting Recording, NSLocalizedRecoverySuggestion=At least one target failed to launch; aborting run} Instruments Trace Error : Failed to start trace. 

Para mí, parece que los instrumentos tienen un error aquí. Intenté iniciar la aplicación más de 100 veces, en diferentes escenarios y no puedo analizar un patrón de error. El crash del dispositivo dice:

 Process: DTMobileIS [34956] Path: /Developer/Library/Daemons/DTMobileIS Identifier: DTMobileIS Version: ??? (???) Code Type: ARM (Native) Parent Process: lockbot [34938] Date/Time: 2013-10-07 15:29:05.474 -0700 OS Version: iOS 6.1.3 (10B329) Report Version: 104 Exception Type: EXC_BAD_ACCESS (SIGSEGV) Exception Codes: KERN_INVALID_ADDRESS at 0x00000000 

El tipo de exception EXC_BAD_ACCESS (SIGSEGV) indica que ya se ha liberado un object al que se accede. Un SIGSEGV es una falla de segmentación, lo que significa que está intentando acceder a una dirección de memory inválida. Referencia: Tipos de exception en los loggings de locking de iOS

En lugar de utilizar el bundleIdentifier, también intenté especificar la ruta completa de la aplicación o el bundleIdentifier completo:

 # with full app path instruments \ -w c717fa22472d7b691ae5763af90e1e44244ad85a \ -t /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate \ -D "/Users/mj/Desktop/apps/trace" \ /Users/mj/Desktop/apps/LPSimpleExample-cal.app \ -e UIARESULTSPATH /Users/mj/Desktop/apps \ -e UIASCRIPT /Users/mj/Desktop/apps/_run_loop.js # with full bundleIdentifier instruments \ -w c717fa22472d7b691ae5763af90e1e44244ad85a \ -t /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate \ -D "/Users/mj/Desktop/apps/trace" \ /Users/mj/Desktop/apps/LPSimpleExample-cal.app \ -e UIARESULTSPATH /Users/mj/Desktop/apps \ -e UIASCRIPT /Users/mj/Desktop/apps/_run_loop.js 

Detalles de configuration

  • Versión de instrumentos: 5.0 (51166)
  • Versión XCode: 5.0 (5A1413)
  • Tipos de dispositivo: iPhone 5 – 6.1.3, iPhone 5C – 7.02, iPhone 5S – 7.0.2

¿Alguien más información en qué casos los instrumentos no pueden iniciar una aplicación en el dispositivo o cuando recibe el post de error que unable to locate CFBundleIdentifier for path: LPSimpleExample-cal ?

¿Estás usando Calabash con Jenkins?

¿Alguien más información en qué casos los instrumentos no pueden iniciar una aplicación en el dispositivo o> cuando recibe el post de error que no puede encontrar CFBundleIdentifier para la ruta: LPSimpleExample- cal ?

Tuve el problema de usar Calabash en Jenkins y lo que me ayudó a resolverlo fue lanzar instrumentos (calabash) en la carpeta de la aplicación (donde está el xcodeproj). No olvides copyr la aplicación comstackda en esta carpeta.

Disculpe si no contesto la pregunta.

Tuve este problema al intentar ejecutar una aplicación de iOS con instrumentos bajo el control de Xcode Server en el iDevice conectado al host del server. Sin embargo, esa aplicación nunca se instaló en iDevice de destino antes. Solo puedo suponer que el post de error

 instruments ... unable to locate CFBundleIdentifier for path: ... 

en realidad se refiere al sistema de files del iDevice (donde esa aplicación no está presente) a pesar del hecho de que el post de error informa una ruta en el sistema de files del server Xcode Server. Después de instalar manualmente la aplicación en el dispositivo de destino utilizando mi máquina de desarrollo una vez, el post de error en el host del server desapareció y los instrumentos funcionaban nuevamente.

Mi punto de partida es que los posts de error de Xcode Server (y / o los instrumentos) son simplemente abismalmente malos. ¿Quién necesita enemigos cuando tiene posts de error como estos?