¿Existe una forma de decirle a OS X Lion que desactive la auto-cancelación para una determinada aplicación que no se quiere auto-cancelar?
FYI Lion es un desertor si no lo sabías ya, que si no quieres que sea para una determinada Applicaiton.
Lion saldrá de tus aplicaciones en ejecución a tus espaldas si decide que necesita los recursos, y si no parece que los estés utilizando. La heurística para determinar si una aplicación está "en uso" es muy conservadora: no debe ser la aplicación activa, no debe tener ventanas visibles y no minimizadas - y, por supuesto, debe soportar explícitamente la Terminación Automática.
Por ejemplo, digamos que no quiero que TextEdit se cierre automáticamente cuando no tengo ninguna ventana de TextEdit abierta y cambio a otra aplicación.
Después de echar un vistazo a Sección de la guía de programación de Mac App para la terminación automática He intentado añadir la clave NSSupportsAutomaticTermination con el valor No al archivo Info.plist de TextEdit. (No ha funcionado: TextEdit se bloquea al abrirlo).
Cabe destacar que el archivo no incluía la clave NSSupportsAutomaticTermination (lo que significa que Apple estaba utilizando NSProcessInfo para habilitar la terminación automática), por lo que añadir una clave probablemente no tendría ningún efecto de todos modos ya que NSProcessInfo anula lo que está en el archivo plist. (Comprobado que esto no funciona, autofirmando TextEdit con un Info.plist modificado incluyendo la clave NSSupportsAutomaticTermination y el valor de No).
Un efecto secundario observado es que cambiar cualquier cosa en el archivo Info.plist hace que TextEdit se bloquee al abrirlo. La causa se señala en el registro de fallos como "firma de código inválida", lo que significa que la aplicación TextEdit y todo su contenido están firmados por código. La solución es autofirmar la aplicación utilizando el programa codesign
y un certificado root autofirmado como se indica en Tarea de firma de código .
Después de lo que he probado hasta ahora, TextEdit sigue obedeciendo a la Terminación Automática.