題:
有沒有辦法禁用應用程序的OS X自動終止?
MrDaniel
2012-04-16 21:03:24 UTC
view on stackexchange narkive permalink

是否有一種方法可以告訴OS X Lion為您不想自動終止的給定應用程序禁用自動終止?

FYI Lion是一個退出者您還不知道,如果您不希望將其用於某個應用程序,該怎麼辦。

Lion會在確定需要資源的情況下,在後台退出正在運行的應用程序,並且您似乎並沒有使用它們。確定應用程序是否在“使用中”的試探法非常保守:它不能是活動應用程序,它必須沒有可見的,最小的窗口,當然,它必須明確支持自動終止。

例如,說我不希望在沒有打開TextEdit窗口並切換到另一個應用程序時自動退出TextEdit。

看看 Mac應用程序編程指南節自動終止我想我會嘗試加入有否為文本編輯的Info.plist文件中值NSSupportsAutomaticTermination關鍵。 (無效:TextEdit在打開時崩潰。)

要注意的是,該文件不包含NSSupportsAutomaticTermination密鑰(這意味著Apple正在使用 NSProcessInfo啟用自動終止),因此添加密鑰可能始終無效,因為NSProcessInfo會覆蓋plist文件中的內容。 (通過使用包含NSSupportsAutomaticTermination鍵和值為No的修改的Info.plist自簽名TextEdit來驗證這是行不通的。

注意到的一個副作用是,更改Info.plist文件中的任何內容都會導致TextEdit在打開時崩潰。原因從崩潰日誌中記錄為“代碼簽名無效”,這意味著TextEdit應用及其所有內容均已代碼簽名。使用協同設計代碼>命令和自簽名的根證書作為代碼簽名任務指出解決方法是自簽署的應用程序。

經過我到目前為止的嘗試,TextEdit仍然遵循自動終止。

所以...如果您對應用程序進行自簽名,它是否有效?
是的,即使我自簽名後,程序仍然自動終止,無論我添加到Info.plist中的內容如何
您是否嘗試下載Apple隨開發工具提供的TextEdit的示例源,並編輯(或刪除)註冊為自動終止的NSProcessInfo內容?
沒有嘗試過,在這種情況下應該可以工作。但是這個問題超出了TextEdit。我們可以在沒有開發人員源代碼級別乾預的情況下解決此問題,這更多是一個問題。因為我們將無法始終訪問支持自動終止的應用程序的源代碼。
好吧,不。重點是要遵循操作系統的規則。如果要繞過此功能而不更改代碼,請使用Snow Leopard。蘋果就是這樣運作的。
“這就是蘋果公司的運作方式”,這是虛假的。這是一項新功能,目前尚未很好地宣傳。從Apple Docs來看,它甚至還不清楚操作系統自動終止程序所需要的內容。蘋果公司也沒有為此做廣告,也沒有在Lion功能頁面上為最終用戶提及。我認為蘋果正在嘗試新的東西。如果最終用戶不喜歡這樣,他們應該向Apple和Developers發出聲音,以便他們做得更好。
[Lion在後台殺死應用程序,如何將應用程序置於不殺死列表中?](http://apple.stackexchange.com/questions/23777/lion-kills-application-behind-the-scene-how把應用程序殺掉)
[由於系統級覆蓋,看來修改TextEdit的源也不起作用。](https://discussions.apple.com/message/18246404#18246404)
二 答案:
user22760
2012-05-14 00:36:04 UTC
view on stackexchange narkive permalink

您的願望是我的終端命令;-)

 默認為write -g NSDisableAutomaticTermination -bool是 

請注意,因為“自動終止”並不是真正的退出應用程序,而是隱藏它們,它們必須已經正確退出才能生效。

很好,很好找到user22760。如上文所述對其進行了嘗試,確實可以工作,謝謝。運行默認值後,TextEdit.app的測試用例不再自動終止...,然後打開然後退出TextEdit。重新打開TextEdit後,它將不會在沒有打開窗口且在後台運行的情況下自動終止。
有趣。試用此命令後,它確實可以工作。但是,事實證明,嘗試撤消操作比較困難。默認值為write -g NSDisableAutomaticTermination -bool否,false或刪除鍵無效,並且應用程序不會自動終止
這個奇蹟命令對我來說對小牛有效!當返回到會話或打開新會話時,它將生效。
非常感謝您添加了啟動和手動退出該應用程序的說明,然後重新啟動它以正確查看效果!
Daniel
2012-04-17 01:58:30 UTC
view on stackexchange narkive permalink

如果您的硬件支持,有一種可靠的方法可以解決此問題。您可以從Mac OS X 10.7(Lion)升級到Mac OS X 10.6(Snow Leopard)。

雖然並非所有將運行Lion的硬件都可以支持此改進的操作系統(遺憾的是,我的2011年中期的MacBook) Air不提供),它具有非自動終止功能, Rosetta (使Intel處理器能夠運行針對PPC處理器編譯的軟件)以及與出色的WireTap中按應用程序錄製功能的兼容性等功能。 Studio。

與所有升級一樣,某些功能會丟失(例如任務控制啟動板,某些手勢),並且需要執行某些操作系統怪癖有些習慣(例如,滾動方向相反),但總的來說,這是很好的升級。

好點,但對於大多數用戶而言,自動終止不值得回滾到Snow Leopard上,它對某些用戶只是一個小麻煩,我也不是其中之一。
可以肯定的是,這是一個極端的解決方案,但這是Snow Leopard優於Lion的幾種方式之一。它們的累積作用可能會誘使某人想要雪豹。就是說,我只是在學習使用它,因為Lion的其他功能(特別是與iCloud相關)使其值得克服缺點。
問題是關於獅子。
@GrahamPerrin也是我的答案。我的觀點是,這是Lion破壞的許多事情之一,一種解決方案可能是不運行Lion。


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...