2012-09-08 94 views
1

所有,部署沙箱時是否可以重新啓動應用程序?

我有必要重新啓動我的應用程序。一派,有兩個建議:
1. https://gist.github.com/2204627
直接得到了lsboxd消息。

2. http://13bold.com/tutorials/relaunching-your-application/
了LSOpenFromURLSpec()返回-10827 ...消息

兩者都涉及到沙盒。

我想知道,有沒有什麼辦法來重新啓動我的應用程序沙箱部署?謝謝!

+0

「當部署沙箱時」是什麼意思? – TheAmateurProgrammer

+0

@theAmateurProgrammer說,我的意思是我的應用程序是沙盒。 – Terry

+0

您的應用在編譯時應該被沙盒化。爲什麼你需要重新啓動你的應用程序? – TheAmateurProgrammer

回答

6

沙盒應用程序可以啓動使用NSWorkspacelaunchAppWithBundleIdentifier:自身的新副本;通過在選項NSWorkspaceLaunchAsyncNSWorkspaceLaunchNewInstance異步運行創建您的應用程序的新進程和調用返回後終止當前進程(或撥打電話爲響應一個NSApplicationWillTerminateNotification的一部分)。

+0

我已經試過launchAppWithBundleIdentifier:...方法簡單地用「com.apple.dock」,似乎工作,但仍然得到了「lsboxd:@AE ......」在控制檯中。我不確定它是否與沙盒限制衝突? – Terry

+0

@Terry - 也許我誤解了,你不應該用「com.apple.dock」這樣做,這是你自己的應用程序在沙箱下運行時重新啓動自己的方法。也就是說,也許這種方法不再有效,沙箱是臭名昭着的,如果可能的話應該避免。該方法來自開發人員論壇上的一個主題 - 今年早些時候搜索「launchAppWithBundleIdentifier」 - 並在其中一名Apple工程師確認了該過程。如果它不再在該帖子中工作,也許蘋果工程師會迴應。 – CRD

相關問題