挂载的 .dmg 文件 window 顶部路径的用途是什么?如何删除它?

What is the purpose of the path at the top of the window of a mounted .dmg file, and how can I remove it?

我最近使用 macdeployqt 为我的应用程序创建了一个 .dmg。该应用程序在其他 Mac 上运行良好,但我注意到在双击 .dmg 后,构建的 .app 的原始位置位于 window 的顶部:

这甚至在其他 Mac 上也是可见的,我不希望它是这样,因为对于最终用户来说这似乎是无关紧要的信息。我试着用这些命令查看 .dmg:

cd /Volumes
hdiutil info

我得到了一堆输出,相关部分似乎在最后:

framework       : 444.50.16
driver          : 10.12v444.50.16
================================================
image-path      : /Users/mitch/dev/slate-releases/slate-v0.0.5-mac.dmg
image-alias     : /Users/mitch/dev/slate-releases/slate-v0.0.5-mac.dmg
shadow-path     : <none>
icon-path       : /System/Library/PrivateFrameworks/DiskImages.framework/Resources/CDiskImage.icns
image-type      : UDIF read-only compressed (zlib)
system-image    : false
blockcount      : 97676
blocksize       : 512
writeable       : false
autodiskmount   : TRUE
removable       : TRUE
image-encrypted : false
mounting user   : mitch
mounting mode   : <unknown>
process ID      : 31262
/dev/disk2  GUID_partition_scheme   
/dev/disk2s1    [...]   /Volumes/:Users:mitch:dev:slate-qt5_10_isle_fw-Release:app:slate

为什么原始文件名是 .dmg 的一部分,我该如何删除它?

卷名

在您的屏幕截图中显示为 window 标题的是 .dmg 的卷名。

创建短卷名称

最简单的处理方法如下:

  • 在终端 cd 到你的应用所在的路径
  • 从那里打电话 macdeployqt <appname> -dmg

然后创建一个.dmg,其中应用程序的名称作为卷名。

例子

cd examples/basic/widgets/cd/darwin
macdeployqt widgets.app -dmg

给出:

所以实际上调用macdeployqt时的相对路径被用作.dmg的卷名。

您不能删除或更改现有只读 .dmg 的卷名。

如果您要通过 使用磁盘工具(位于 /Applications/Utilities 下)创建 .dmg,您将输入 'Name' .此名称与 .dmg 的卷名称相同。

手动转换

如果您想使用 GUI 应用程序从现有的 read-only.dmg 创建一个带有自定义卷名的新 .dmg,您可以按如下方式进行:

  • 使用正确的名称创建一个新的 .dmg(此名称随后显示为 window 标题,我们可以在这里使用,例如 'SomeFancyName')
  • 选择格式'Mac OS Extended (Journaled)'
  • 加密:'none'
  • 分区:'Single partition - GUID Partition Map'
  • 图片格式:'read/write disk image'

然后:

  • 复制原来.dmg的内容
  • 最终从取景器中弹出图像
  • 使用磁盘工具
  • 在那里选择你的 read/write 图片
  • 保存 'Image Format':压缩

使用命令行进行图像转换

如果您需要定期执行此操作,应该提到 hdiutil 还提供通过命令行进行图像转换,请参阅:

man hdiutil