Modifying a distribution .pkg that has max macOS version requirements


What’s the problem?

A vendor has the option, when creating a macOS distribution package, to put in a minimum and/or maximum macOS version.

That can make things slightly annoying if you’re trying, for example, to test out the current vendor package on a beta macOS version (or even a fully released macOS version that the vendor just hasn’t decided to support yet officially).

If a vendor doesn’t just say “Hey, we don’t support that macOS version yet” but actually packages their installer to essentially prevent you from installing on a newer macOS version, that can kind of stink for testing purposes.

So instead of the installer installing the .pkg, you’ll get an error message in both the graphical user interface…

And the command-line…


sudo installer -pkg Vendor\ Package\ with\ Limitations.pkg -target /
installer: Cannot install on volume / because it is disabled.
installer: The version of macOS is too new.

What’s the solution?

Well, the only real solution is for the vendor to release a beta version of their package to target beta versions of macOS, so customers can test properly… or to not put in an artificial limitation on the installer, and just say “Hey, we don’t officially support this, FYI.”

What’s the workaround?

But if the vendor isn’t going to do that, and you really need to test, a possible workaround (your mileage may vary) is to modify the .pkg to remove the limitation.

Expand the distribution package:


pkgutil --expand Vendor\ Package\ with\ Limitations.pkg ~/Desktop/VendorPackageWithLimitations

Then, use a text editor to modify the Distribution file and take out the limitations.

Then, flatten the package again:


pkgutil --flatten ~/Desktop/VendorPackageWithLimitations/ ~/Desktop/VendorPackageWithoutLimitations.pkg

Now, instead of giving you some warning message about not being able to install—assuming all goes well—you may get it to actually install:


sudo installer -pkg VendorPackageWithoutLimitations.pkg -target /
installer: Package name is Vendor Package with Limitations
installer: Upgrading at base path /
installer: The upgrade was successful.

Acknowledgements

Thanks to Harry Seeber on the MacAdmins Slack for suggesting this as a viable workaround.


Leave a Reply

Your email address will not be published.