2012-09-03 26 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中
  • 通过船坞下水经过发射器应用
相关问题