在OS X应用程序包中使用符号链接

时间:2009-07-14 15:33:28

标签: macos bundle

我遇到了以下问题。我有一个具有以下结构的包:

B.app/Contents/Frameworks -> link to an existing FS location [1]
B.app/Contents/Info.plist
B.app/Contents/MacOS
B.app/Contents/MacOS/AliasBinary -> link to an existing binary called ExistingBinary [2]
B.app/Contents/Resources -> link to an existing FS location [3]

链接[1]和[3]只是指向捆绑包的现有文件系统位置(即目录)的链接。 AliasBinary 是指向另一个我不想复制到捆绑包的应用程序的链接,但是想在多个捆绑包之间共享它。后一个二进制文件称为 ExistingBinary

我遇到的问题是打电话

$ open B.app

会打开应用程序,但前提是 ExistingBinary 的上一个实例未运行。这同样适用于双击B.app。如果之前没有运行 ExistingBinary 的实例,那么一切正常。启动 ExistingBinary 后,我无法再通过双击或致电open B.app启动B.app

帮助!

编辑:

有趣的事实是,如果捆绑包在/ Applications中,一切都有效,但当我将其移到/ Applications之外时,它只会恢复专注于应用的第一个实例。

open -n有帮助,但那不是我想要的:)

1 个答案:

答案 0 :(得分:0)

这可能是两次不打开现有应用程序的默认启动服务行为。

在Leopard中,尝试

open -n B.app 

或者如果您有启动实用程序:

launch -m B.app