2

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

dmg 截图

即使在其他 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 的一部分,我该如何删除它?

4

1 回答 1

1

卷名

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

创建短卷名

处理它的最简单方法如下:

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

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

例子

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

给出:

伤害名称

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

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

如果您要通过 <File/New Image/Blank Image...> 使用磁盘工具(位于 /Applications/Utilities 下)创建您的 .dmg,您将输入一个“名称”。此名称与 .dmg 的卷名相同。

手动转换

如果您想使用 GUI 应用程序从现有的 read-only.dmg 创建一个具有自定义卷名的新 .dmg,您可以执行以下操作:

  • 创建一个具有正确名称的新 .dmg(此名称随后显示为窗口标题,我们可以在此处使用,例如“SomeFancyName”)
  • 选择格式“Mac OS Extended (Journaled)”
  • 加密:“无”
  • 分区:'单个分区 - GUID 分区图'
  • 图像格式:'读/写磁盘图像'

然后:

  • 复制原始 .dmg 的内容
  • 最后从取景器中弹出图像
  • 使用磁盘工具 <Images/Convert...>
  • 在那里选择你的读/写图像
  • 使用“图像格式”保存:压缩

自定义名称

使用命令行进行图像转换

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

man hdiutil 
于 2019-01-05T13:37:00.870 回答