There is no one "best" DMG format as each format has its own advantages and disadvantages depending on your specific use case. Here are some of the most common DMG formats used in macOS:

  1. UDIF: This is the default and most widely supported DMG format. It supports compression, encryption, and segmented images. However, it is not as efficient as other formats when dealing with large files.
  2. UDRO: This is a read-only format that is suitable for distributing software or data. It is smaller in size than the UDIF format because it does not support compression or encryption.
  3. UDZO: This format supports read-only compression and is suitable for distributing large files over a network or loading from disk. However, it can take longer to create and may require more processing power.
  4. UDBZ: This format supports read-write compression and is suitable for storing frequently accessed files on a disk image. However, it can take longer to read and write files to the image.
  5. UDCO: This format supports copy-on-write compression and is suitable for creating disk images that are updated frequently. It is fast and efficient, but it can be complex to set up.

Ultimately, the best DMG format depends on your specific needs and use case. If you need to distribute software or data, then UDRO may be the best option. If you need to distribute large files, then UDZO may be the best option. If you need read-write access, then UDBZ or UDIF may be the best option.

What's the most typical DMG format used for distributing apps over the internet?

The most typical DMG format used for distributing apps on the internet is the UDIF format. This is because UDIF is the default and most widely supported format by macOS, making it easy for developers to create and distribute apps in this format. Additionally, UDIF supports compression and encryption, which can help reduce the size of the DMG file and provide added security. UDIF is also compatible with a wide range of third-party tools and utilities, making it easy for users to open and use the DMG file on their Mac. Overall, UDIF is a reliable and widely supported format for distributing apps on the internet.

Are any DMG file types not supported by older versions of MacOS?

Yes, some of the DMG formats may not be fully supported by older versions of macOS. Here is a breakdown of DMG format support by macOS version:

  • UDIF: This format is supported by all versions of macOS.
  • UDRO: This format is supported by all versions of macOS.
  • UDZO: This format is supported by macOS (OS X) 10.2 and later.
  • UDBZ: This format is supported by macOS (OS X) 10.4 and later.
  • UDCO: This format is supported by macOS (OS X) 10.5 and later.

It's worth noting that while a particular DMG format may be supported by an older version of macOS, some features of that format may not be supported. For example, older versions of macOS may not support encryption or certain types of compression for a particular DMG format. Therefore, it's important to consider the specific features and requirements of your DMG file when selecting a format to ensure compatibility with the intended audience.

What does it mean for MacOS in 2023?

It's worth noting that, MacOS was renamed from OS X in 2016 which I would like to remind you is already 7 years old.

  • OS X 10.2, also known as Jaguar, was released on August 24, 2002.
  • OS X 10.4, also known as Tiger, was released on April 29, 2005.
  • OS X 10.4, also known as Leopard, was released on October 26, 2007

These are fairly old versions of MacOS and are not so widely used any more. That being said if you'd like your application to support quite old versions of the operating system it is something you'd want to consider when building DMG files.

Change to 64-bit architecture only

Starting from macOS 10.15 Catalina (released in October 7, 2019), the default architecture for macOS only supports 64-bit applications. This means that 32-bit applications are no longer supported by default on macOS Catalina and later versions. Prior to macOS Catalina, 32-bit and 64-bit applications were supported, but Apple had been warning developers for several years that 32-bit support would be phased out. The shift to 64-bit only architecture is part of Apple's ongoing efforts to improve performance and security on macOS.

Change from x64 to ARM with M1 processors

Apple first introduced the ARM-based architecture for their Macs with the release of the M1 chip in November 2020. The M1 chip is based on Apple's ARM-based A-series chips used in iPhones and iPads. With the release of the M1 chip, Apple began transitioning its Mac lineup to ARM-based architecture, starting with the MacBook Air, MacBook Pro, and Mac Mini. The transition is expected to take a few years, and during this time, Apple will continue to support and release new versions of macOS for both Intel-based and ARM-based Macs.

Today in 2023, Intel-based Macs are still quite wide-spread so your application should be build for both x64 as well as the still relatively new M1 ARM CPUs.

Are UDCO files smaller than UDZO when compressed?

In general, UDCO files can be smaller than UDZO files when compressed because UDCO uses copy-on-write compression, which can be more efficient than read-only compression used by UDZO. With copy-on-write compression, the data is stored in blocks, and if a block is unchanged from the original data, it is not duplicated. Instead, the block points back to the original data, reducing the amount of storage required.

However, the actual compression ratio and resulting file size can depend on the specific data being compressed. For example, if the data being compressed is already highly compressed, such as a ZIP archive, then the compression ratio may not be as significant, regardless of the compression format used.

Ultimately, the choice of compression format depends on the specific use case and the type of data being compressed. Both UDCO and UDZO have their own advantages and disadvantages, and the best choice depends on the specific needs of the user.

With all that in mind, which format is best for me?

As mentioned above, it all really depends on the type of application you are building. Newer DMG file formats might not be supported by older versions of MacOS but the choice ultimately comes down to your needs. The most important question are:

  • Do you need to support read-only or read/write types of DMG files?
  • Do you want to use compression?
  • Do you need to encrypt your DMG files?

At the end of the day the choice is up to your personal preferences and the nature of the application being distributed.