C'è un modo per dire a OS X Lion di disabilitare la terminazione automatica per una determinata applicazione che non si desidera terminare automaticamente?
FYI Lion è un quitter se non lo sapevi già, cosa succede se non vuoi che sia per un determinato Applicaiton.
Lion lascerà le tue applicazioni in esecuzione dietro la schiena se decide che ha bisogno delle risorse e se non sembra che le stia usando. L'euristica per determinare se un'applicazione è "in uso" è molto prudente: non deve essere l'applicazione attiva, non deve avere finestre visibili e non minimizzate e, naturalmente, deve supportare esplicitamente la terminazione automatica.
Ad esempio, supponiamo che non voglia che TextEdit si chiuda automaticamente quando non ho finestre TextEdit aperte e passaggio a un'altra Applicazione.
Dopo aver dato un'occhiata alla sezione Guida alla programmazione dell'app per Mac per la terminazione automatica, ho pensato di provare ad aggiungere la chiave NSSupportsAutomaticTermination con il valore No al file Info.plist per TextEdit. (Non ha funzionato: TextEdit si arresta in modo anomalo all'apertura.)
Da notare, il file non includeva la chiave NSSupportsAutomaticTermination (il che significa che Apple stava usando NSProcessInfo per abilitare la terminazione automatica), quindi l'aggiunta di una chiave probabilmente non avrebbe comunque alcun effetto poiché NSProcessInfo sovrascrive ciò che è nel file plist. (Verificato che non funziona, autofirmando TextEdit con un Info.plist modificato che include la chiave NSSupportsAutomaticTermination e il valore No).
Un effetto collaterale notato è che la modifica di qualsiasi cosa nel file Info.plist provoca l'arresto anomalo di TextEdit all'apertura. La causa viene annotata dal registro degli arresti anomali come "firma del codice non valida", il che significa che l'app TextEdit e tutti i suoi contenuti sono firmati dal codice. La soluzione alternativa è di codesign
autofirmare l'app usando il comando e un certificato radice autofirmato come indicato nell'attività Firma del codice .
Dopo quello che ho provato finora, TextEdit obbedisce ancora alla terminazione automatica.