在dmg C ++中运行pkg

时间:2015-04-11 10:53:56

标签: c++ macos dmg pkg-file

尝试在Google上搜索但似乎无法找到任何信息。

我需要通过代码执行存在于dmg文件中的pkg文件。原因是软件更新。我通过我的应用程序下载更新(这是一个dmg),需要运行它。在Windows上,这非常简单:运行exe。无法弄清楚如何在Mac上实现这一目标。

就框架而言,我使用wxWidgets和cocoa(如果有帮助的话)。

1 个答案:

答案 0 :(得分:1)

我不知道直接使用cocoa API执行此操作的方法,但您可以使用外部命令来执行此操作:使用/usr/bin/hdiutil attach /path/to/image.dmg安装磁盘映像,然后使用{{1}安装包(有关更多信息和选项,请参阅/usr/sbin/installer -package /Volumes/mountedvolume/installer.pkg -target /)。请注意,如果程序包需要管理员权限才能安装,则您需要以root身份运行man installer命令。

编辑:要获取已安装卷的完整路径,您可能需要解析installer的输出。虽然它很大程度上取决于磁盘映像的格式,但它看起来像这样:

hdiutil