我的主应用程序包中有一些内部应用程序包(在参考资料中)。安装(使用安装程序)后,我的应用程序被放置在/ 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用户执行此命令的原因,对当前用户没有影响。
这个问题有解决办法吗?
谢谢!
答案 0 :(得分:1)
您可以在主应用程序首次运行时注册您的帮助应用程序,而不是在安装期间注册。您需要按名称和位置而不是捆绑ID来查找它们。而不是使用lsregister
工具,您可以使用LSRegisterURL
函数。请记住,NSURL*
可以通过免费桥接转换为CFURLRef
。
答案 1 :(得分:0)
似乎没有解决方案。因为我需要为系统的每个用户运行lsreginster
,并且在安装后新创建的用户将看不到此帮助应用程序。
唯一的方法是将此应用程序放在主包之外(例如/ Applications的子目录中)