chore(store): replace Play listing images instead of appending (#5574)

supply's sync_image_upload defaults to false, which makes an upload ADD to
whatever is already on the listing. The next release would have left the
old screenshots in place alongside the new ones, putting the phone set at
10 images against Play's limit of 8.

With this on, fastlane/metadata-play is authoritative: the listing ends up
with exactly what the directory holds, and anything added by hand in Play
Console that is not mirrored there gets removed.

Only upload_production is affected. The internal and beta lanes still skip
images entirely, so the flag never applies to them.

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Huang Xin 2026-08-08 14:25:22 +08:00 • committed by GitHub
parent 00098cad1e
commit 58e234bdaa
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 10 additions and 2 deletions

View file

@ -24,7 +24,12 @@ platform :android do
skip_upload_metadata: false,
skip_upload_images: false,
skip_upload_screenshots: false,
skip_upload_changelogs: false
skip_upload_changelogs: false,
# Without this supply ADDS images instead of replacing them, so a release
# would leave the previous set on the listing alongside the new one and
# push the phone screenshots past Play's limit of 8. With it, whatever is
# in metadata-play is exactly what the listing ends up with.
sync_image_upload: true
)
end

View file

@ -78,7 +78,10 @@ correctly on both Play and F-Droid.
Editing these files now changes the live listings on the next release run.
- **Play** — `upload_production` uploads metadata, images, screenshots and
changelogs from `metadata-play`. The `upload_internal` and `upload_beta` lanes
changelogs from `metadata-play`, with `sync_image_upload: true` so the upload
REPLACES the live imagery instead of adding to it. This directory is therefore
authoritative: anything added by hand in Play Console and not mirrored here
gets deleted on the next release. The `upload_internal` and `upload_beta` lanes
still skip all of it on purpose: Play's listing text and imagery are
store-level, not track-level, so uploading from a test track would rewrite the
live production listing.