Qbs Manual | AppleApplicationDiskImage Item

Qbs 1.9.0

AppleDiskImage Item ◦ Application Item

# AppleApplicationDiskImage Item

An `AppleApplicationDiskImage` item is a convenience item that has a dependency on the DMG module and whose type is `["dmg.dmg"]`, and also has rules and properties specific to building drag 'n' drop disk image installers with an application bundle and symbolic link to the /Applications directory.

Any artifacts of product dependencies which are tagged `"installable"` will be copied into the disk image, provided their file paths are relative to the path specified by the `sourceBase` property (i.e. are located in that directory). Any artifacts tagged `"installable"` and which are not relative to `sourceBase` will be ignored.

Here is what the project file could look like for a simple DMG installer:

      import qbs

      AppleApplicationDiskImage {
          Depends { name: "myapp" }
          name: "My App"
          dmg.volumeName: name
          dmg.iconSize: 128
          dmg.windowWidth: 640
          dmg.windowHeight: 280
          dmg.iconPositions: [
              {"path": "Applications", "x": 128, "y": 128},
              {"path": "My App.app", "x": 256, "y": 128}
          ]
          files: ["background.tiff", "volume-icon.icns"]
          Group {
              files: ["*.lproj/**"] // licenses
              fileTags: ["dmg.license.input"]
          }
      }

For plain disk images whose contents are not a single application bundle, consider the base AppleDiskImage item instead.

## AppleApplicationDiskImage Properties

The following properties are available in addition to the ones inherited from `AppleDiskImage`.

Property | Type | Since | Default | Description
--- | --- | --- | --- | ---
sourceBase | `string` | 1.9 | /Applications | The base directory from which artifacts installed into the disk image will be copied. This directory is always considered to be relative to `qbs.installRoot`. For example, if the application Example.app exists at `qbs.installRoot`/Applications/Example.app, and `sourceBase` is `/Applications`, the application will be located at /Example.app relative to the disk image root, and therefore its full path when the disk image is mounted would be something like /Volumes/Example-1.0/Example.app.
symlinks | `stringList` | 1.9 | `["/Applications:Applications"]` | List of symlinks to create in the disk image. This is specified as a list of strings, each string containing two file paths separated by a colon. The first path is the symlink target, and the second path is the name of the symlink relative to the root of the disk image.

AppleDiskImage Item ◦ Application Item