启动服务注册应用程序包

时间:2011-12-13 12:32:57

标签: macos bundle

我的主应用程序包中有一些内部应用程序包(在参考资料中)。安装(使用安装程序)后,我的应用程序被放置在/ Applications中,但我找不到他们的“内部”应用程序的捆绑ID。

如果我手动转到/ Applications,选择我的应用程序并在Finder中导航到其内容,我的“内部”应用程序就变得可见了。

我知道lsregister负责注册应用程序包,我在pkg的postflight中有这个脚本:

SREGISTER="/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister"

$LSREGISTER "/Applications/MY.app/Contents/Resources/MyMini.app"

但我需要在安装程序中使用管理权限,这就是root用户执行此命令的原因,对当前用户没有影响。

这个问题有解决办法吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

您可以在主应用程序首次运行时注册您的帮助应用程序,而不是在安装期间注册。您需要按名称和位置而不是捆绑ID来查找它们。而不是使用lsregister工具,您可以使用LSRegisterURL函数。请记住,NSURL*可以通过免费桥接转换为CFURLRef

答案 1 :(得分:0)

似乎没有解决方案。因为我需要为系统的每个用户运行lsreginster,并且在安装后新创建的用户将看不到此帮助应用程序。

唯一的方法是将此应用程序放在主包之外(例如/ Applications的子目录中)