Package different file types with pkgbuild
.app, bash, macos, pkgbuild
Solution
Yeah... you don't want to do it this way :D
First, of you don't need to create the subpackages, just don't. You can have several bundles in the same pkg file. Use the `--components` flag to define them (or create a Components Property List). Build your entire file system inside of your rootdir. So in your case you'd have:
.../content/Applications/Utilities/PrinterTool.app
.../content/Library/...wherever.../driver-whatever.
Then your `--install-location` is just `/`.
If you really need multiple packages (or if it's just more convenient), then you want to use `productbuild` to combine them. You can pass multiple `--package` options to create a multi-package installer.
Problem
So I'm packaging a printer tool for our company consisting two .pkg files (drivers) and an .app file. Right now I'm using the following command to build the package: ``` pkgbuild --root ./content --script ./scripts --identifier com.MyGreatCompany --version 0.1 --install-location /tmp/ ./PrinterTool.pkg ``` So when installing the package all content is placed in the /tmp/ directory. A postinstall script then completes the installation like this: ``` installer -verbose -pkg /private/tmp/PackageOne.pkg -target / installer -verbose -pkg /private/tmp/PackageTwo.pkg -target / /bin/rm -rf /Applications/Utilities/PrinterTool.app /bin/mv -f /private/tmp/PrinterTool.app /Applications/Utilities/PrinterTool.app ``` This kind of works. The first install attempt goes well, but when I'm trying to re-install the same package things go wrong. The .app file is not copied to the /tmp folder and thus not moved to the Utilities folder. So i'd like to know two things: - Is there an explanation why the .app file is only copied once? - Is this the best way to package multiple file types? I have the feeling that placing it in the /tmp folder is unnecessary. By default the package files are being placed in some kind of installer /tmp folder, right? Can't this be the working directory from which the postinstall script will run?