mac: How to add a License.txt to a pkg built with productbuild using --component option?

user427182 picture user427182 · Aug 14, 2012 · Viewed 7.5k times · Source

We currently build our mac installer as a pkg file using productbuild --component (as per the following post: Mac app store productbuild).

This works wonderfully, but I also wish to add a license file to this installer.

With packagemaker, you can specify the option --resources [path_to_resources_file]. If you put a License.txt in the specified resources folder, the installer magically includes a license step.

Whilst productbuild's man page describes a --resources option too, in practice this does not appear to work with the --component option. It just seems to ignore the option altogether.

According to the productbuild man page, the --component option apparently only takes a product definition plist (I had a look through the plist options and none seemed to apply to a license file), a component, an optional install path and an output path. Although the --sign option also works.

Does anyone know whether it is possible (and if so, how) to include a license file for the installer when using productbuild --component?

Thanks in advance.

Iain

Answer

Jesse Barnum picture Jesse Barnum · Mar 15, 2013

In your distribution file that you pass as a parameter to productbuild, include a license element, like this:

<?xml version="1.0" encoding="utf-8"?>
<installer-gui-script minSpecVersion="1">
    <title>My Awesome App</title>
    <welcome file="welcome.html" />
    <readme file="readme.html" />
    <license file="license.html" />
    <conclusion file="conclusion.html" />

    <options customize="never" />
    <choices-outline>
        <line choice="install"/>
    </choices-outline>
    <choice id="install" visible="true" title="Install" description="Installation description goes here">
        <pkg-ref id="com.prosc.RemoteExecution.install.pkg">#installer.pkg</pkg-ref>
    </choice>
</installer-gui-script>

These files need to be present in whatever directory you specify in the --resources parameter that you pass to productbuild, like this:

productbuild --distribution distribution.xml --resources building/ "Mac Installer.pkg"