2012-09-03 24 views
1

我在/Applications的包中有一個啓動器應用程序,它選擇一個二進制文件和fork/execs文件。我想爲他們分享一個碼頭平鋪。我嘗試了幾種方法,但都沒有令人滿意。如何使2個應用程序共享相同的底座瓦片

1.保持與應用

如果二進制包含在應用程序包內,這似乎工作捆綁在一起的二進制文件。但是,對於軟件包自身進行修改通常被認爲是不好的做法,並且我不能保證用戶有權訪問/Applications。我試圖把一個符號鏈接到例如~/Library/Application Support/MyBinaries/mybinary但這給出了一個單獨的碼頭拼貼。

2.保持二進制應用程序捆綁

外面如果二進制是捆綁的應用程序外,我得到一個獨立的碼頭瓦。爲什麼我不把其中一個進程設置爲代理s.t.其中一個瓷磚沒有出現?這必須是啓動程序,因爲用戶不應該跳過啓動程序的邏輯,無法運行哪個二進制文件。不幸的是,這意味着退出無法正常工作,並且您無法單擊擴展塢來恢復二進制窗口。可以通過在應用程序之間正確傳遞消息來實現這一點。

3.大規模哈克解決方案

有通過增加間接,在此,/Applications/MyLauncher.app啓動應用在~/Library/Application Support/Launcher2.app另一個應用程序,其中包含在其包中的二進制文件的額外級別這樣做的相當哈克的方式。只有第二個啓動器有一個碼頭圖標。

這看起來很詭異,所以我想我會打開這個來看看是否有人有更好的解決方案?

編輯

在選項2中,我保持了二進制文件在自己的包。不要這樣做。當我將它們放在常規文件夾中時,一切正常。

回答

0

回答我自己的問題。

如果您發現自己處於這種情況,請使用選項2.將應用程序置於/Applications/MyApplication.app,並將二進制文件保存在名爲~/Library/Application Support/MyApplication/Binaries/的文件夾中,並愉快地fork/exec它們。絕對不要將它們放在應用程序包中,因爲這是我的困惑之源。這解決了我所有的條件:

  • 不需要root訪問權限修改的二進制文件
  • 啓動和二進制文件共享一個碼頭瓦
  • 碼頭上的方磚壓制退出退出二進制文件。
  • 應用程序出現在Launchpad中
  • 通過船塢下水經過發射器應用
相關問題