productbuild --product preinstall-requirements. MacOs

What should be the key used in the preinstall-requirements for a package built by prodcutbuild?

Keep getting this message no matter what I try (not using xcode) from AppStore via Transporter.

"ERROR ITMS-90264: "The lowest minimum system version [none] in the Product Definition Property List must equal the 'LSMinimumSystemVersion' value [10.9.0] in the 'Info.plist'.""

Had tried the following, but appstore keeps complaining with same message. Also transporter verifies, but when I click deliver, the delivery fails with above message

=============
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" --appleurl redacted >
<plist version="1.0">
<dict>
<key>os</key>
<array>
<string>10.9.0</string>
</array>
</dict>
</plist>
===============

used also LSMinimumSystemVersion in place of os.

By the way, how do I verify that the product requirements list is captured in the package?

The command I use is:
productbuild \
  • -distribution ./distribution.xml \

  • -resources ~/Desktop/resources \

  • -identifier com.myorg.uniqueid \

  • -version ${VERSION} \

  • -sign "${IDENTITY}" \

  • -product ~/Desktop/product_definition.plist outputFinal.pkg

man page for productbuild (10.15.7 catalina)
says the following

===
  • -product requirements-plist

When synthesizing a distribution, use the requirements from
requirements-plist. See PRE-INSTALL REQUIREMENTS PROPERTY
LIST (this was formerly called the "product definition
property list").

PRE-INSTALL REQUIREMENTS PROPERTY LIST
When you use productbuild to synthesize a distribution (e.g. with the
  • -component option), you can specify pre-install requirements in a separate property list file, specified with the --product option.

Code Block
At the top level, this property list is a dictionary, with the following
keys:

Key Description
os Minimum allowable OS versions (array of
strings)
arch Supported architectures (array of strings)
ram Minimum required RAM in gigabytes (real)
bundle Specific bundles that must exist on the system
(array
of
dictionaries)
all-bundles Are all of the bundles specified required?
(Boolean)
gl-renderer Required OpenGL capabilities (string)
cl-device Required OpenCL capabilities (string)
single-graphics-device Must OpenGL and OpenCL requirements be met by a
single
device?
(Boolean)
home Should installation be allowed in user home
directory?
(Boolean)
Code Block
o The os key defines one or more minimum system versions. You might
have multiple versions if a certain OS update is required for a given
major OS version. For example, if you specify 10.5.4 and 10.6.2,
Leopard would be allowed from 10.5.4 up, and Snow Leopard from 10.6.2
up, but 10.6 and 10.6.1 would be rejected. There is no upper-bound
associated with the highest value given.

NOTE: Some of the other requirements imply their own minimum system
versions, which may override the values set here. This is noted below
where applicable.
Code Block
o The arch key specifies the supported architectures, e.g. i386 and/or
x86_64. Note that i386 allows both 32- and 64-bit systems, but if you
specify only x86_64, a 64-bit system is required.

=====


Any pointers -- gratefully appreciated. Thanks!!
Post not yet marked as solved Up vote post of soft_tech Down vote post of soft_tech
2.1k views