pkgbuild并移动了应用程序

时间:2015-10-23 11:25:21

标签: macos nsfilemanager pkgbuild productbuild

我在OS X上使用pkgbuild和productbuild工具创建了一个应用程序安装程序。我创建的软件包将我的应用程序安装到/ Application文件夹。 现在,如果我使用NSFileManager(使用另一个我的应用程序)将此应用程序移动到另一个位置,我的软件包将重新安装到新位置,但将/或应用程序安装在那里。

这看起来像是一些文件路径缓存,我可以以某种方式“冲洗现金”,这样我的pkg会将应用程序安装到正确的位置吗?

我注意到了小牛队和埃尔卡皮坦队。我相信优胜美地也是如此。

1 个答案:

答案 0 :(得分:1)

  

如果我将此应用程序移动到其他位置

OS X不喜欢同一应用程序的多个相同副本。问题是由于Launch Services看到应用程序时注册了应用程序。

将应用程序复制到/ Applications或首次运行时,应用程序详细信息将在Launch Services中注册。当用户通过双击其捆绑包来运行应用程序时,启动服务会查看已注册的应用程序并确定实际运行的内容。

OS X安装程序与启动服务协同工作,因此当要从包中复制包时,它首先检查是否已注册并存在相同的应用程序;如果应用程序有,则不会发生复制。可以在/var/log/install.log

中的安装日志中查看

拥有相同应用程序的多个副本可能会让人感到困惑,我建议您不要这样做。如果您想将捆绑包放在一边并重新安装,请将其移至废纸篓,这将从启动服务中删除其注册。