How do I create a DMG file on linux Ubuntu for MacOS
Solution 1:
There are several ways that this can be accomplished under Ubuntu and I describe here one technique that I have tested on Ubuntu 18.04 and also tested the resulting dmg file on a colleague's MacOS computer. Out of the several techniques that have been suggested online I believe this one is the better choice!
There are only a few relatively straightforward steps to follow:
-
Install some applications: First you will need to install
hfsprogs
which is a port of Apple's Open Source tools for HFS+ filesystems:sudo apt-get install hfsprogs
This will provide the necessary tool to work with Apple's HFS+ filesystem.
-
Create the HFS+ file: Next you will create a 16MB dmg file and format it to HFS+ wih the following two command lines:
dd if=/dev/zero of=/tmp/my_application.dmg bs=1M count=16 status=progress mkfs.hfsplus -v Install /tmp/my_application.dmg
There are a few variables here which you should look at: you can alter the
count=16
to reflect the size dmg file that you need and you can alter the volume label, given here as-v Install
. -
Mount the file, copy your program: Now you can create a mount point, mount your dmg file there, copy your program files to the mounted dmg files and then unmount it all:
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
The variable to alter here is of course the actual name of your application in the
cp
command which I have given above simply asmy_program
.
Now your completed dmg file is sitting in /tmp/my_application.dmg
ready for deployment and testing on MacOS!
References:
- How to build a dmg Mac OS X file (on a non-Mac platform)? A coverage of some of the different techniques to create a working dmg file.