Comportamiento peculiar con la aplicación Mac OS X en El Capitán

1

Tengo una instalación hecha con Paquetes (v1.1.3), y mi aplicación (codificada) se instala bien.

Y puedo ejecutarlo UNA VEZ. La segunda vez, la aplicación no se abrirá. Es como si OS X pensara que la aplicación todavía se está ejecutando, porque si inicio la aplicación desde el terminal open -n /Applications/MyApplication.app se abre. Pero no sin la opción -n. Y no hay ninguna instancia de que se ejecute, ya sea que se muestre en el Monitor de actividad o con ps -A.

Haciendo open /Applications/MyApplication.app en la Terminal, el comando de abrir simplemente se "colgará" indefinidamente. No hay entradas de registro en la Consola, ni ninguna en la salida estándar que pueda arrojar luz sobre esto.

Iniciar el ejecutable directamente en un terminal: /Applications/MyApplication.app/Contents/MacOS/MyApplication funciona bien (!)

Y una cosa más: si cambio el nombre de la aplicación para que diga "MyApplication2.app", TAMBIÉN se abre correctamente. Pero no si lo cambio de nuevo.

Cuando esté en esta condición (que es completamente reproducible al desinstalar el paquete, luego reinstalarlo), si cierro la sesión y luego vuelvo a iniciar sesión, la aplicación se abrirá normalmente.

Además: la aplicación funciona bien en un El Capitan recién instalado (y en Yosemite), el problema hasta ahora ha surgido en las máquinas que se han actualizado de Yosemite a El Capitan.

Realmente no tengo idea de dónde buscar la solución para este ...

Edit 1: En realidad, esto se reproduce cada vez que reinicio la Mac. Pero si luego me desconecto / inicio sesión, comienza a funcionar. ¡Esto no es aceptable!

Edit 2: Spindump from cuando open está en la condición de "colgado":

Date/Time:       2015-12-14 10:46:25 +0100
OS Version:      Mac OS X 10.11.1 (Build 15B42)
Architecture:    x86_64
Report Version:  22

Command:         open
Path:            /usr/bin/open
Version:         ??? (???)
Parent:          bash [421]
Responsible:     Terminal [253]
PID:             435

Duration:        10.00s
Steps:           1000 (10ms sampling interval)

Hardware model:  MacBookPro6,2
Active cpus:     4

Fan speed:       1996 rpm

------------------------------------------------------------
Heavy format: stacks are sorted by count
Use -i and -timeline to re-report with chronological sorting
------------------------------------------------------------



Process:         open [435]
Path:            /usr/bin/open
Architecture:    x86_64
Parent:          bash [421]
Responsible:     Terminal [253]
UID:             501
Task size:       2140 pages (-6)
Note:            2 idle work queue threads omitted

  Thread 0x1223           DispatchQueue 1         1000 samples (1-1000)   priority 31 (base 31)
  1000  start + 1 (libdyld.dylib + 13741) [0x7fff9ce485ad]
    1000  ??? (open + 13012) [0x1075572d4]
      1000  LSOpenURLsWithRole + 32 (LaunchServices + 191296) [0x7fff9c263b40]
        1000  _LSOpenURLsWithRole_Common(__CFArray const*, unsigned int, AEKeyDesc const*, LSApplicationParameters_V1 const*, ProcessSerialNumber*, long, __CFURL const**) + 387 (LaunchServices + 627634) [0x7fff9c2ce3b2]
          1000  _LSOpenStuff + 126 (LaunchServices + 156284) [0x7fff9c25b27c]
            1000  _LSOpenStuffCallLocal + 5692 (LaunchServices + 199633) [0x7fff9c265bd1]
              1000  CFDictionaryApplyFunction + 186 (CoreFoundation + 277482) [0x7fff984e6bea]
                1000  CFBasicHashApply + 128 (CoreFoundation + 277680) [0x7fff984e6cb0]
                  1000  __CFDictionaryApplyFunction_block_invoke + 22 (CoreFoundation + 277750) [0x7fff984e6cf6]
                    1000  _LSOpenItemsWithHandler_CFDictionaryApplier(void const*, void const*, void*) + 5103 (LaunchServices + 206768) [0x7fff9c2677b0]
                      1000  _LSOpenApp(LSOpenState*, unsigned int, FSNode*, unsigned int, unsigned char*, ProcessSerialNumber*) + 338 (LaunchServices + 208695) [0x7fff9c267f37]
                        1000  _LSLaunch(LSContext*, FSNode*, unsigned int, void*, __CFArray const*, AEDesc const*, __CFArray const*, __CFDictionary const*, unsigned int, audit_token_t const*, ProcessSerialNumber*, unsigned char*) + 8437 (LaunchServices + 218379) [0x7fff9c26a50b]
                          1000  _LSLaunchApplication + 5837 (LaunchServices + 228056) [0x7fff9c26cad8]
                            1000  LaunchApplicationViaLaunchDJobLabel(LSSessionID, CFMutableDictionary&, CFMutableDictionary&, __CFArray const*, char const* const*, __LSASN const**, __CFDictionary const**) + 1683 (LaunchServices + 235258) [0x7fff9c26e6fa]
                              1000  _spawn_via_launchd + 801 (libxpc.dylib + 80457) [0x7fff8e287a49]
                                1000  _xpc_interface_routine + 163 (libxpc.dylib + 24054) [0x7fff8e279df6]
                                  1000  xpc_pipe_routine + 249 (libxpc.dylib + 24411) [0x7fff8e279f5b]
                                    1000  mach_msg_trap + 10 (libsystem_kernel.dylib + 72854) [0x7fff95636c96]
                                     *1000  ipc_mqueue_receive_continue + 0 (kernel + 856352) [0xffffff80002d1120]

  Thread 0x1224           DispatchQueue 2         1000 samples (1-1000)   priority 31 (base 31)
  1000  _dispatch_mgr_thread + 52 (libdispatch.dylib + 32133) [0x7fff8d35bd85]
    1000  kevent_qos + 10 (libsystem_kernel.dylib + 98466) [0x7fff9563d0a2]
     *1000  ??? (kernel + 5844400) [0xffffff8000792db0]
    
pregunta Robert 08.12.2015 - 12:33

1 respuesta

2

Reportar el error

Dado que el comportamiento es reproducible y su salida de spindump sugiere que el bloqueo se produce dentro de LSOpenURLsWithRole de Apple, informe de un error con Apple .

Lamentablemente, es poco probable que tu error atraiga atención inmediata de Apple.

Exija ayuda de DTS de Apple

Como es probable que se trate de un error de bloqueo, abre un Incidente de soporte técnico (TSI) con el Soporte técnico para desarrolladores de Apple ( DTS). Su membresía Apple Developer incluye dos incidentes y esta situación es un candidato ideal para estos incidentes:

  

Solicitando soporte técnico

     

Un Incidente de Soporte Técnico (TSI) es una solicitud de soporte a nivel de código para marcos de trabajo, API y herramientas de Apple, y está disponible para miembros del Programa de Desarrolladores de Apple, Programa de Desarrolladores de Apple y Programa MFi. Envíe un TSI si no puede corregir un error, tiene problemas para implementar una tecnología específica o si tiene otras preguntas sobre su código. Su incidente se asignará a un ingeniero de soporte técnico para desarrolladores que puede ayudarlo a solucionar su código o proporcionar soluciones para acelerar su desarrollo. Las respuestas se envían por correo electrónico en inglés, generalmente dentro de tres días hábiles.

     

Programa de desarrollador de Apple y Programa de empresa de desarrollador de Apple

     

Con cada inscripción se incluyen dos incidentes de soporte técnico, que caducarán al final de su año de membresía. ...

    
respondido por el Graham Miln 14.12.2015 - 16:35

Lea otras preguntas en las etiquetas