Ok I finally sorted it all out.
Here's completely working stuff. Proven to be able to be processed by the Transporter. Warning, any other way will fail ;)
Compression that’s not legacy can’t work with Large payload. At all. No matter what tool you use. I used pkgbuild and it also has major issues with large payload and modern compression.
Prepare your .app with HUUUGE file (> 8Gb). Sign it correctly, do everything as usual!
Pkgbuild time
pkgbuild --identifier *** --large-payload --min-os-version 12.4 --root 'MyRoot/Applications' com.XXXX.pkg
pkgbuild: Inferring bundle components from contents of Root/Applications
pkgbuild: Adding component at ***.app
<?xml version="1.0" encoding="utf-8"?>
<installer-gui-script minSpecVersion="2">
<pkg-ref id="com.XXXX"/>
<product id="com.XXXX" version="1.0.1”/>. <—————————— Must be adjusted
<options customize="never" require-scripts="false" hostArchitectures="x86_64,arm64"/>
<volume-check>
<allowed-os-versions>
<os-version min="12.4.0"/>
</allowed-os-versions>
</volume-check>
<choices-outline>
<line choice="default">
<line choice="com.XXXX"/>
</line>
</choices-outline>
<choice id="default"/>
<choice id="com.XXXX" visible="false" customLocation="/Applications”>. <——— Custom location should be added
<pkg-ref id="com.XXXX"/>
</choice>
<pkg-ref id="com.XXXX" version="0" onConclusion="none">com.XXXX.pkg</pkg-ref>
</installer-gui-script>.
productbuild --sign "Installer" --symbolication Symbols --distribution installer-script --package-path . My.pkg
This produced My.pkg which was accepted by the Transporter.
One last important note
As of today it’s impossible to make all this in any XCode as it seems to be unaware of large payloads and productbuild does have a bug with versioning.
Post
Replies
Boosts
Views
Activity
Ok I figured it out. I still haven't checked the AppStore process but at least all checks pass now
It's MUCH more complex than product build, but product build itself is buggy.
So.
Prepare your .app with HUUUGE file (> 8Gb). Sign it correctly, do everything as usual!
pkgbuild --identifier <APP_ID> --large-payload --compression latest --min-os-version 12.4 --root <root_with_app_inside> <APP_ID>.pkg
Make the following 'Distribution' file
<installer-gui-script minSpecVersion="2">
<pkg-ref id="com.***">
<bundle-version>
<bundle CFBundleShortVersionString="1.0.1" CFBundleVersion="23" id="com.***" path="MY.app"/>
</bundle-version>
</pkg-ref>
<product id="com.***" version="1.0.1"/>
<title>MY</title>
<options customize="never" require-scripts="false" hostArchitectures="arm64,x86_64"/>
<volume-check>
<allowed-os-versions>
<os-version min="12.4"/>
</allowed-os-versions>
</volume-check>
<choices-outline>
<line choice="default">
<line choice="com.***"/>
</line>
</choices-outline>
<choice id="default" title="MY" versStr="1.0.1"/>
<choice id="com.***" title="MY" visible="false" customLocation="/Applications">
<pkg-ref id="com.***">com.***.pkg</pkg-ref>
</choice>
</installer-gui-script>
productbuild --sign "Signer" --distribution ./Distribution --package-path ~ Final.pkg
Something like that
Your package definitely will be 1) compressed fine 2) smaller 3) with super large file
Feed the stuff to the Transporter. Don't forget to adjust Distribution with correct version, id's etc.
Have fun!
I certainly had it
Some more context
the machine I am doing all tests is 12.6 m1 mini
xcode seems to be completely ignorant of large payloads so all is done by shell scripting
the packaging completes successfully albeit with 12,0 warnings.
I used —expand-full to get broken results
I used auto compression