我在 Linux 上为 MacOS 交叉编译了一个程序,现在我想将该 MacOS 二进制文件转换为 MacOS 的 DMG 文件。
有没有办法将 Linux(Ubuntu)上的 MacOS 二进制文件转换为 MacOS 的 DMG 文件?
答案1
有一些在 Ubuntu 下可以实现此目的的方法,我在此描述了一种我在 Ubuntu 18.04 上测试过的技术,并在同事的 MacOS 计算机上测试了生成的 dmg 文件。在网上建议的几种技术中,我相信这是更好的选择!
只有少数相对地简单易懂的步骤如下:
安装一些应用程序:首先,您需要安装
hfsprogs
Apple 针对 HFS+ 文件系统的开源工具的端口:sudo apt-get install hfsprogs
这将提供与 Apple 的 HFS+ 文件系统配合使用的必要工具。
创建 HFS+ 文件:接下来,您将创建一个 16MB 的 dmg 文件,并使用以下两个命令行将其格式化为 HFS+:
dd if=/dev/zero of=/tmp/my_application.dmg bs=1M count=16 status=progress mkfs.hfsplus -v Install /tmp/my_application.dmg
这里有几个变量需要您注意:您可以改变它
count=16
来反映您需要的 dmg 文件的大小,您还可以改变这里给出的卷标-v Install
。挂载文件,复制你的程序:现在您可以创建一个挂载点,将您的 dmg 文件挂载在那里,将您的程序文件复制到已挂载的 dmg 文件中,然后将其全部卸载:
mkdir -pv /mnt/tmp sudo mount -o loop /tmp/my_application.dmg /mnt/tmp sudo cp -av my_program /mnt/tmp sudo umount /mnt/tmp
这里要改变的变量当然是实际名称您在命令中的应用程序
cp
,我上面已经给出了简单的my_program
。
现在,您完成的 dmg 文件已准备/tmp/my_application.dmg
好在 MacOS 上部署和测试!
参考:
- 如何构建 dmg Mac OS X 文件(在非 Mac 平台上)?介绍了一些创建工作 dmg 文件的不同技术。